parallel ip - initial checkin
Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.project b/.project
new file mode 100644
index 0000000..6a768a7
--- /dev/null
+++ b/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid</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/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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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..e87893a
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,29 @@
+<?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.authentication</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.ecview.core</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.ecview.extension.api</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.runtime.web</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.vaaclipse</jenkins.build.dependency>
+ <jenkins.build.dependency>org.eclipse.osbp.vaaclipse.common.ecview</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 "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™ 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>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>
diff --git a/org.eclipse.osbp.infogrid.api/.project b/org.eclipse.osbp.infogrid.api/.project
new file mode 100644
index 0000000..08ab6bc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.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.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.infogrid.api/LICENSE.txt b/org.eclipse.osbp.infogrid.api/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.api/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.api/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b608558
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.api
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.api
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.extension.grid.model,
+ org.eclipse.osbp.ecview.extension.model,
+ org.eclipse.core.databinding.beans;bundle-version="1.2.200",
+ org.eclipse.core.databinding.property;bundle-version="1.4.200"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.infogrid.api;version="0.9.0"
+Import-Package: org.osgi.service.component.annotations,
+ org.slf4j;version="1.7.2"
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.infogrid.api/about.html b/org.eclipse.osbp.infogrid.api/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.api/about.ini b/org.eclipse.osbp.infogrid.api/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.api/about.mappings b/org.eclipse.osbp.infogrid.api/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.api/about.properties b/org.eclipse.osbp.infogrid.api/about.properties
new file mode 100644
index 0000000..28f18dd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.api/build.properties b/org.eclipse.osbp.infogrid.api/build.properties
new file mode 100644
index 0000000..d58d085
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\
+ .,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+src.includes = about.properties, about.mappings, about.ini, about.html, license.html,\
+ epl-v10.html,\
+ LICENSE.txt
diff --git a/org.eclipse.osbp.infogrid.api/epl-v10.html b/org.eclipse.osbp.infogrid.api/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/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.infogrid.api/license.html b/org.eclipse.osbp.infogrid.api/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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™ 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.infogrid.api/pom.xml b/org.eclipse.osbp.infogrid.api/pom.xml
new file mode 100644
index 0000000..7616b6e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.api</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/AbstractGridSourceDescriptor.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/AbstractGridSourceDescriptor.java
new file mode 100644
index 0000000..ee501b6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/AbstractGridSourceDescriptor.java
@@ -0,0 +1,70 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+import java.util.Map;
+
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+
+public abstract class AbstractGridSourceDescriptor extends AbstractDisposable
+ implements IGridSourceDescriptor, IGridSourceDescriptor.Internal {
+
+ protected final String id;
+ protected final CxGridSource source;
+ protected String label;
+ protected Map<String, Object> properties;
+ private Class<?> inputType;
+
+ public AbstractGridSourceDescriptor(Class<?> inputType, CxGridSource source) {
+ this.inputType = inputType;
+ this.id = source.getId();
+ this.source = source;
+ }
+
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ @Override
+ public String getLabel() {
+ checkDisposed();
+ return label;
+ }
+
+ public Class<?> getInputType() {
+ return inputType;
+ }
+
+ public void setLabel(String label) {
+ checkDisposed();
+ this.label = label;
+ }
+
+ @Override
+ public CxGridSource getSource() {
+ checkDisposed();
+ return source;
+ }
+
+ @Override
+ public void setProperties(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/DefaultECViewGridFactory.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/DefaultECViewGridFactory.java
new file mode 100644
index 0000000..6d603a9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/DefaultECViewGridFactory.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.infogrid.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.ecview.core.common.model.core.YCompare;
+import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
+import org.eclipse.osbp.runtime.common.types.IBundleSpace;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.eclipse.osbp.ecview.extension.grid.CxGrid;
+import org.eclipse.osbp.ecview.extension.grid.CxGridColumn;
+import org.eclipse.osbp.ecview.extension.grid.CxGridFactory;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridButtonRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridDateRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridImageRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridIndicatorRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridNumberRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridPriceRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridProgressBarRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridQuantityRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridRendererFactory;
+import org.eclipse.osbp.ecview.extension.model.converter.YConverterFactory;
+import org.eclipse.osbp.ecview.extension.model.converter.YNumericToResourceConfig;
+import org.eclipse.osbp.ecview.extension.model.converter.YNumericToResourceConverter;
+import org.eclipse.osbp.ecview.extension.model.converter.YStringToResourceConfig;
+import org.eclipse.osbp.ecview.extension.model.converter.YStringToResourceConverter;
+
+// TODO put to different bundle
+public class DefaultECViewGridFactory implements IECViewGridFactory {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(DefaultECViewGridFactory.class);
+
+ private CxGridFactory gridFactory = CxGridFactory.eINSTANCE;
+
+ public DefaultECViewGridFactory() {
+
+ }
+
+ @Override
+ public CxGrid createGrid(Class<?> inputType, CxGridSource gridSource) {
+
+ BundleContext bc = FrameworkUtil.getBundle(getClass())
+ .getBundleContext();
+ ServiceReference<IBundleSpace> bsRef = bc
+ .getServiceReference(IBundleSpace.class);
+ if (bsRef == null) {
+ LOGGER.error("No BundleSpace available.");
+ return gridFactory.createCxGrid();
+ }
+ IBundleSpace bundleSpace = bc.getService(bsRef);
+
+ Class<?> rootType = null;
+ try {
+ rootType = bundleSpace.forName(gridSource.getRootTypeFQN());
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ bc.ungetService(bsRef);
+
+ CxGrid grid = gridFactory.createCxGrid();
+ grid.setId(GRID_ID);
+ grid.getProperties().put(GRIDSOURCE_ID, gridSource.getId());
+ grid.setEditorEnabled(false);
+ grid.setHeaderVisible(true);
+ grid.setUseBeanService(!gridSource.getTags().contains(IECViewGridSourceDescriptor.PROP_MANUAL_BEANS));
+ grid.setColumnReorderingAllowed(true);
+ if( rootType != null ) {
+ grid.setType(rootType);
+ grid.setTypeQualifiedName(rootType.getName());
+ }
+
+ for (CxGridProperty prop : gridSource.getProperties()) {
+ CxGridColumn column = gridFactory.createCxGridColumn();
+ column.setPropertyPath(prop.getDotPath());
+ column.setPropertyId(prop.getDotPath());
+
+ Class<?> propertyType = BeanProperties
+ .value(rootType, prop.getDotPath()).getPropertyDescriptor()
+ .getPropertyType();
+ Pair pair = createRendererPair(prop, propertyType);
+ column.setRenderer(pair.renderer);
+ column.setConverter(pair.converter);
+ grid.getColumns().add(column);
+ }
+
+ for (CxGridSourceInput input : gridSource.getInputs()) {
+ if (inputType.getName().equals(input.getInputTypeFQN())) {
+ for (CxGridSourceEQFilter filter : input.getFilters()) {
+ // take the filter value from the input
+ filter.getInputTypePropertyPath();
+ }
+ }
+ }
+
+ return grid;
+ }
+
+ /**
+ * Creates a renderer for the given property.
+ *
+ * @param prop
+ * @param propertyType
+ * @return
+ */
+ protected Pair createRendererPair(CxGridProperty prop, Class<?> propertyType) {
+
+ if ( prop == null ) {
+ return null;
+ }
+
+ Pair pair = new Pair();
+
+ CxGridRendererFactory factory = CxGridRendererFactory.eINSTANCE;
+ if (prop.getStyle() == null) {
+ return createBadRenderer();
+ }
+
+ EClass styleClass = prop.getStyle().eClass();
+ switch (styleClass.getClassifierID()) {
+ case CxGridStylePackage.CX_GRID_PROP_BOOLEAN_STYLE:
+ pair.renderer = factory.createCxGridBooleanRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE: {
+ CxGridPropDateStyle style = (CxGridPropDateStyle) prop.getStyle();
+ CxGridDateRenderer renderer = factory.createCxGridDateRenderer();
+ renderer.setDateFormat(style.getDateFormat());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE: {
+ if (!isNumeric(propertyType)) {
+ return createBadRenderer();
+ }
+ CxGridPropNumberStyle style = (CxGridPropNumberStyle) prop
+ .getStyle();
+ CxGridNumberRenderer renderer = factory
+ .createCxGridNumberRenderer();
+ renderer.setNumberFormat(style.getNumberFormat());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE: {
+ CxGridPropButtonStyle style = (CxGridPropButtonStyle) prop
+ .getStyle();
+ CxGridButtonRenderer renderer = factory
+ .createCxGridButtonRenderer();
+ renderer.setEventTopic(style.getEventTopic());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE: {
+ CxGridPropImageStyle style = (CxGridPropImageStyle) prop.getStyle();
+ YConverter converter = toConverter(style.getConfigs());
+ CxGridImageRenderer renderer = factory.createCxGridImageRenderer();
+ renderer.setEventTopic(style.getEventTopic());
+ pair.renderer = renderer;
+ pair.converter = converter;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_HTML_STYLE:
+ pair.renderer = factory.createCxGridHtmlRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE: {
+ CxGridPropProgressbarStyle style = (CxGridPropProgressbarStyle) prop
+ .getStyle();
+ CxGridProgressBarRenderer renderer = factory
+ .createCxGridProgressBarRenderer();
+ renderer.setMaxValue(style.getMaxValue());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE: {
+ CxGridPropIndicatorStyle style = (CxGridPropIndicatorStyle) prop
+ .getStyle();
+ CxGridIndicatorRenderer renderer = factory
+ .createCxGridIndicatorRenderer();
+ renderer.setGreenStarts(style.getGreenStarts());
+ renderer.setRedEnds(style.getRedEnds());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE:
+ pair.renderer = factory.createCxGridHtmlRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_TEXT_STYLE:
+ pair.renderer = factory.createCxGridHtmlRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE: {
+ CxGridPropQuantityStyle style = (CxGridPropQuantityStyle) prop
+ .getStyle();
+ CxGridQuantityRenderer renderer = factory
+ .createCxGridQuantityRenderer();
+ renderer.setHtmlPattern(style.getHtmlPattern());
+ renderer.setNullRepresentation("");
+ renderer.setNumberFormat(style.getValueNumberFormat());
+ renderer.setUomPropertyPath(style.getUomPropertyDotPath());
+ renderer.setValuePropertyPath(style.getValuePropertyDotPath());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE: {
+ CxGridPropPriceStyle style = (CxGridPropPriceStyle) prop.getStyle();
+ CxGridPriceRenderer renderer = factory.createCxGridPriceRenderer();
+ renderer.setHtmlPattern(style.getHtmlPattern());
+ renderer.setNullRepresentation("");
+ renderer.setNumberFormat(style.getValueNumberFormat());
+ renderer.setCurrencyPropertyPath(style.getCurrencyPropertyDotPath());
+ renderer.setValuePropertyPath(style.getValuePropertyDotPath());
+ pair.renderer = renderer;
+ }
+ break;
+ }
+
+ return pair;
+ }
+
+ protected boolean isNumeric(Class<?> propertyType) {
+ boolean result = propertyType.isAssignableFrom(Number.class);
+ if (!result) {
+ if (propertyType.isPrimitive() && propertyType != Boolean.TYPE
+ && propertyType != Void.TYPE) {
+ result = true;
+ }
+ }
+ return result;
+ }
+
+ protected YConverter toConverter(EList<CxGridStyleConfig> configs) {
+ if (configs.isEmpty()) {
+ return null;
+ }
+
+ CxGridStyleConfig cxConfig = configs.get(0);
+ if (cxConfig instanceof CxGridStyleConfigStringToResource) {
+ List<YStringToResourceConfig> newConfigs = toStringToResourceConfig(configs);
+ YStringToResourceConverter converter = YConverterFactory.eINSTANCE
+ .createYStringToResourceConverter();
+ converter.getConfigs().addAll(newConfigs);
+ return converter;
+ } else if (cxConfig instanceof CxGridStyleConfigNumericToResource) {
+ List<YNumericToResourceConfig> newConfigs = toNumberToResourceConfig(configs);
+ YNumericToResourceConverter converter = YConverterFactory.eINSTANCE
+ .createYNumericToResourceConverter();
+ converter.getConfigs().addAll(newConfigs);
+ return converter;
+ }
+
+ return null;
+ }
+
+ private List<YNumericToResourceConfig> toNumberToResourceConfig(
+ EList<CxGridStyleConfig> configs) {
+ List<YNumericToResourceConfig> result = new ArrayList<>(configs.size());
+ for (CxGridStyleConfig config : configs) {
+ if (!(config instanceof CxGridStyleConfigNumericToResource)) {
+ LOGGER.warn("you mixed up different style configs!");
+ continue;
+ }
+
+ CxGridStyleConfigNumericToResource givenConfig = (CxGridStyleConfigNumericToResource) config;
+ YNumericToResourceConfig newConfig = YConverterFactory.eINSTANCE
+ .createYNumericToResourceConfig();
+ newConfig.setResourceThemePath(givenConfig.getResourceThemePath());
+ newConfig.setValue(givenConfig.getValue());
+ newConfig.setCompare(toGridCompare(givenConfig.getCompare()));
+ result.add(newConfig);
+ }
+
+ return result;
+ }
+
+ private YCompare toGridCompare(CxGridCompare compare) {
+ switch (compare) {
+ case EQUAL:
+ return YCompare.EQUAL;
+ case GREATER_EQUAL:
+ return YCompare.GREATER_EQUAL;
+ case GREATER_THAN:
+ return YCompare.GREATER_THAN;
+ case LOWER_EQUAL:
+ return YCompare.LOWER_EQUAL;
+ case LOWER_THAN:
+ return YCompare.LOWER_THAN;
+ case NOT_EQUAL:
+ return YCompare.NOT_EQUAL;
+ }
+ return null;
+ }
+
+ private List<YStringToResourceConfig> toStringToResourceConfig(
+ EList<CxGridStyleConfig> configs) {
+ List<YStringToResourceConfig> result = new ArrayList<>(configs.size());
+ for (CxGridStyleConfig config : configs) {
+ if (!(config instanceof CxGridStyleConfigStringToResource)) {
+ LOGGER.warn("you mixed up different style configs!");
+ continue;
+ }
+
+ CxGridStyleConfigStringToResource givenConfig = (CxGridStyleConfigStringToResource) config;
+ YStringToResourceConfig newConfig = YConverterFactory.eINSTANCE
+ .createYStringToResourceConfig();
+ newConfig.setResourceThemePath(givenConfig.getResourceThemePath());
+ newConfig.setValue(givenConfig.getValue());
+ newConfig.setCompare(toGridCompare(givenConfig.getCompare()));
+ result.add(newConfig);
+ }
+
+ return result;
+ }
+
+ protected Pair createBadRenderer() {
+ Pair pair = new Pair();
+ pair.renderer = CxGridRendererFactory.eINSTANCE
+ .createCxGridTextRenderer();
+ return pair;
+ }
+
+ protected static class Pair {
+ public CxGridRenderer renderer;
+ public YConverter converter;
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/ECViewGridEditorFieldFactory.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/ECViewGridEditorFieldFactory.java
new file mode 100644
index 0000000..01f7e99
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/ECViewGridEditorFieldFactory.java
@@ -0,0 +1,56 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+import java.util.Date;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+
+public class ECViewGridEditorFieldFactory implements
+ IECViewGridEditorFieldFactory {
+
+ private ExtensionModelFactory factory = ExtensionModelFactory.eINSTANCE;
+
+ @Override
+ public YField createEditorField(CxGridProperty prop, Class<?> propertyType) {
+ if (propertyType == String.class) {
+ return factory.createYTextField();
+ } else if (propertyType == Integer.class
+ || propertyType == Integer.TYPE) {
+ return factory.createYNumericField();
+ } else if (propertyType == Short.class || propertyType == Short.TYPE) {
+ return factory.createYNumericField();
+ } else if (propertyType == Byte.class || propertyType == Byte.TYPE) {
+ return factory.createYNumericField();
+ } else if (propertyType == Float.class || propertyType == Float.TYPE) {
+ return factory.createYDecimalField();
+ } else if (propertyType == Double.class || propertyType == Double.TYPE) {
+ return factory.createYDecimalField();
+ } else if (propertyType == Long.class || propertyType == Long.TYPE) {
+ return factory.createYNumericField();
+ } else if (propertyType == Character.class
+ || propertyType == Character.TYPE) {
+ return factory.createYTextField();
+ } else if (propertyType == Boolean.class
+ || propertyType == Boolean.TYPE) {
+ return factory.createYCheckBox();
+ } else if (propertyType == Date.class) {
+ return factory.createYDateTime();
+ }
+
+ return null;
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IConstants.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IConstants.java
new file mode 100644
index 0000000..cbf02aa
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IConstants.java
@@ -0,0 +1,17 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+public interface IConstants {
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridEditorFieldFactory.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridEditorFieldFactory.java
new file mode 100644
index 0000000..0266703
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridEditorFieldFactory.java
@@ -0,0 +1,38 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+import org.eclipse.osbp.ecview.core.common.model.core.YField;
+import org.eclipse.osbp.ecview.extension.grid.CxGridColumn;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+
+/**
+ * Creates a {@link YField} as an editorfield for the given propertyType.
+ *
+ * @NoImplement by clients
+ * @Scope(singleton)
+ */
+public interface IECViewGridEditorFieldFactory {
+
+ /**
+ * If CxGrid is editable, we need to return a proper editor field to be used
+ * in the grid editor. If <code>null</code> is returned, the
+ * {@link CxGridColumn} will be set to <code>editable=false</code>.
+ *
+ * @param prop
+ * @param propertyType
+ * @return
+ */
+ YField createEditorField(CxGridProperty prop, Class<?> propertyType);
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridFactory.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridFactory.java
new file mode 100644
index 0000000..d2cd1a4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridFactory.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.infogrid.api;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+
+import org.eclipse.osbp.ecview.extension.grid.CxGrid;
+
+/**
+ * Creates a CxGrid based on a given CxGridSource
+ *
+ * @NoImplement by clients
+ * @Scope(singleton)
+ */
+public interface IECViewGridFactory {
+
+ /**
+ * The ID to access the grid editpart by IViewContext.
+ */
+ public static final String GRID_ID = "org.eclipse.osbp.gridsource.grid";
+
+ /**
+ * The ID of the gridsource put to the grids properties.
+ */
+ public static final String GRIDSOURCE_ID = "GRIDSOURCE_ID";
+
+ /**
+ * Returns a proper built grid for the given source and input type. The
+ * inputType is used to configure the filter statements for the connection
+ * between input type and root type.<br>
+ *
+ * @param inputType
+ * The input type to prepare a proper filter.
+ * @param gridSource
+ *
+ * @return
+ */
+ CxGrid createGrid(Class<?> inputType, CxGridSource gridSource);
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridSourceDescriptor.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridSourceDescriptor.java
new file mode 100644
index 0000000..e2c440e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IECViewGridSourceDescriptor.java
@@ -0,0 +1,42 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+import org.eclipse.osbp.ecview.extension.grid.CxGrid;
+
+public interface IECViewGridSourceDescriptor extends IGridSourceDescriptor {
+
+ String PROP_MANUAL_BEANS = "useManualBeans";
+
+ CxGrid getGrid();
+
+ /**
+ * If a strategy is set, then it will become notified about saved editor
+ * values.
+ *
+ * @param strategy
+ */
+ void setEditorSavedStrategy(EditorSavedStrategy strategy);
+
+ /**
+ * Implementations are called, if the grid editor was saved.
+ */
+ public interface EditorSavedStrategy {
+ /**
+ * This method is called after the grid editor was saved.
+ *
+ * @param value
+ */
+ void editorSaved(Object value);
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceCache.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceCache.java
new file mode 100644
index 0000000..8076a6a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceCache.java
@@ -0,0 +1,96 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+import java.net.URL;
+import java.util.List;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+
+/**
+ * CxGridSource models can be located in any bundle. This cache aims to
+ * centralize all the different models and gives you access to these instances.
+ * <p>
+ * <b>Note:</b><br>
+ * The {@link CxGridSource#getRootTypeFQN()} property needs to be filled
+ * properly. Also the CxGridProperty#getDotPath value. Otherwise the
+ * rootTypeName and dotPath may not be resolvable, since a Xtext-Setup would be
+ * required. And due to minimal dependencies, we avoid these dependencies.
+ *
+ * @NoImplement by clients
+ * @Scope(singleton)
+ */
+public interface IGridSourceCache {
+
+ /**
+ * Returns all grid source model elements.
+ *
+ * @return
+ */
+ List<CxGridSource> getAllSources();
+
+ /**
+ * Returns the grid source model element with the given id.
+ *
+ * @param id
+ * @return
+ */
+ CxGridSource getSource(String id);
+
+ /**
+ * Returns all grid sources matching the given input type.
+ *
+ * @param inputType
+ * @return
+ */
+ List<CxGridSource> getSources(Class<?> inputType);
+
+ /**
+ * Registers new sources.<br>
+ * The {@link CxGridSource#getRootTypeFQN()} property needs to be filled
+ * properly. Also the CxGridProperty#getDotPath value. Otherwise the
+ * rootTypeName and dotPath may not be resolvable, since a Xtext-Setup would
+ * be required. And due to minimal dependencies, we avoid these
+ * dependencies.
+ *
+ * @param urls
+ */
+ void registerSources(List<URL> urls);
+
+ /**
+ * Unregisters sources.
+ *
+ * @param urls
+ */
+ void unregisterSources(List<URL> urls);
+
+ /**
+ * Registers a new source.<br>
+ * The {@link CxGridSource#getRootTypeFQN()} property needs to be filled
+ * properly. Also the CxGridProperty#getDotPath value. Otherwise the
+ * rootTypeName and dotPath may not be resolvable, since a Xtext-Setup would
+ * be required. And due to minimal dependencies, we avoid these
+ * dependencies.
+ *
+ * @param source
+ */
+ void registerSource(CxGridSource source);
+
+ /**
+ * Unregisters the source.
+ *
+ * @param source
+ */
+ void unregisterSource(CxGridSource source);
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceDescriptor.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceDescriptor.java
new file mode 100644
index 0000000..dce4839
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceDescriptor.java
@@ -0,0 +1,125 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.api;
+
+import java.util.Locale;
+import java.util.Map;
+
+import org.eclipse.osbp.runtime.common.dispose.IDisposable;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+
+/**
+ * Subclasses know how to deal with a special kind of CxGridSource. They are
+ * linking the consumer with the created Vaadin-Grid. They also need to handle
+ * input values and changing locales.
+ *
+ * @Scope(prototype)
+ */
+public interface IGridSourceDescriptor extends IDisposable {
+
+ /**
+ * The kind-property is part of the CxGridSource model. Its default value is
+ * ecview. And it may be used to define several kinds of descriptors.
+ */
+ public static final String PROP_KIND = "kind";
+
+ public static final String KIND_ECVIEW = "ecview";
+ public static final String KIND_VAADIN_NATIVE = "vaadin";
+
+ /**
+ * Info grid shows 0-n-relations for a given input type.
+ */
+ public static final String TAG__INFO_GRID = "infoGrid";
+
+ /**
+ * Single grid can be seen as a table. It may also contain editable fields.
+ */
+ public static final String TAG__SINGLE_GRID = "singleGrid";
+
+ /**
+ * Returns the id of the grid source.
+ *
+ * @return
+ */
+ String getId();
+
+ /**
+ * Returns a translated label of the source.
+ *
+ * @return
+ */
+ String getLabel();
+
+ /**
+ * Returns the input type this descriptor accepts.
+ *
+ * @return
+ */
+ Class<?> getInputType();
+
+ /**
+ * Returns the grid source itself.
+ *
+ * @return
+ */
+ CxGridSource getSource();
+
+ /**
+ * Returns an UI component with a rendered instance of a grid component.
+ *
+ * @return
+ */
+ Object getComponent();
+
+ /**
+ * Sets the input value for the UI component.
+ *
+ * @param value
+ */
+ void setInput(Object value);
+
+ /**
+ * Sets the locale for the UI component.
+ *
+ * @param value
+ */
+ void setLocale(Locale locale);
+
+ /**
+ * A callback to get required properties for the descriptor.
+ */
+ interface ConfigCallback {
+
+ /**
+ * Is called after the descriptor was created. So parties may configure
+ * the created descriptor properly.
+ *
+ * @param descriptor
+ */
+ Map<String, Object> getProperties(IGridSourceDescriptor descriptor);
+
+ }
+
+ /**
+ * Internal API. Needs a downcast.
+ */
+ interface Internal {
+
+ /**
+ * Sets the properties of the descriptor.
+ *
+ * @param properties
+ */
+ void setProperties(Map<String, Object> properties);
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceDescriptorProvider.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceDescriptorProvider.java
new file mode 100644
index 0000000..418cc22
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceDescriptorProvider.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.infogrid.api;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+
+/**
+ * Provides IGridSourceDescriptor for a given grid source. Many OSGi-services
+ * for this interface may be registered.<br>
+ * Use the constants following the pattern {PROP_*} in the OSGi service.
+ */
+public interface IGridSourceDescriptorProvider {
+
+ /**
+ * The kind-property is part of the CxGridSource model. Its default value is
+ * ecview. And it may be used to define several kinds of descriptors.
+ */
+ public static final String PROP_KIND = IGridSourceDescriptor.PROP_KIND;
+
+ public static final String KIND_ECVIEW = IGridSourceDescriptor.KIND_ECVIEW;
+ public static final String KIND_VAADIN_NATIVE = IGridSourceDescriptor.KIND_VAADIN_NATIVE;
+
+ /**
+ * If this property is set in the OSGi service, then it is only used for
+ * grid sources with this id.
+ */
+ public static final String PROP_GRID_SOURCE_ID = "gridSourceId";
+
+ /**
+ * Returns a descriptor for the given grid source. The filters will be
+ * properly defined by the inputType.<br>
+ * The callback is invoked after the descriptor was created. Some
+ * descriptors like an ECView descriptor need additional information like
+ * I18nService,... Since I18nService,... is session scoped, a singleton OSGi
+ * can not access that information itself.
+ *
+ * @param inputType
+ * The inputType for the given descriptor
+ * @param source
+ * @param callback
+ * @return
+ */
+ IGridSourceDescriptor createDescriptor(Class<?> inputType,
+ CxGridSource source, IGridSourceDescriptor.ConfigCallback callback);
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceFacade.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceFacade.java
new file mode 100644
index 0000000..2dd5fd6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/IGridSourceFacade.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.infogrid.api;
+
+import java.util.List;
+
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor.ConfigCallback;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+
+/**
+ * This facade gives you access to the underlying implementations. As an
+ * application developer it is a good idea to use this service.
+ *
+ * @NoImplement by clients
+ * @Scope(singleton)
+ */
+public interface IGridSourceFacade {
+
+ /**
+ * Returns the grid source model element with the given id.
+ *
+ * @param id
+ * @return
+ */
+ CxGridSource getSource(String id);
+
+ /**
+ * Returns all grid sources matching the given inputType.
+ *
+ * @param rootType
+ * @return
+ */
+ List<CxGridSource> getSources(Class<?> inputType);
+
+ /**
+ * Returns a configured IGridSourceDescriptor for the given grid source id.<br>
+ * The inputType is used to configure the filter statements for the
+ * connection between input type and root type.<br>
+ * The callback is invoked after the descriptor was created. Some
+ * descriptors like an ECView descriptor need additional information like
+ * I18nService,... Since I18nService,... is session scoped, a singleton OSGi
+ * can not access that information itself.
+ *
+ * @param sourceId
+ * Id of the grid source
+ * @param callback
+ * is called after the creation
+ * @return
+ */
+ IGridSourceDescriptor getDescriptor(Class<?> inputType, String sourceId,
+ ConfigCallback callback);
+
+ /**
+ * Returns a configured IGridSourceDescriptor for the given grid source. <br>
+ * The inputType is used to configure the filter statements for the
+ * connection between input type and root type.<br>
+ * The callback is invoked after the descriptor was created. Some
+ * descriptors like an ECView descriptor need additional information like
+ * I18nService,... Since I18nService,... is session scoped, a singleton OSGi
+ * can not access that information itself.
+ *
+ * @param callback
+ * is called after the creation
+ * @param source
+ * the grid source
+ *
+ * @return
+ */
+ IGridSourceDescriptor getDescriptor(Class<?> inputType,
+ CxGridSource cxSource, ConfigCallback callback);
+
+ /**
+ * Returns all IGridSourceDescriptor available for the given inputType.<br>
+ * The inputType is used to configure the filter statements for the
+ * connection between input type and root type.<br>
+ * The callback is invoked after the descriptor was created. Some
+ * descriptors like an ECView descriptor need additional information like
+ * I18nService,... Since I18nService,... is session scoped, a singleton OSGi
+ * can not access that information itself.
+ *
+ * @param inputType
+ * - The input type for which a gridsource should be shown. Based
+ * on GridSource's input definition, the allowed inputs are
+ * defined there.
+ * @param callback
+ * is called after the creation
+ * @return
+ */
+ List<IGridSourceDescriptor> getDescriptors(Class<?> inputType,
+ ConfigCallback callback);
+
+}
diff --git a/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/SingleECViewGridFactory.java b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/SingleECViewGridFactory.java
new file mode 100644
index 0000000..52ce909
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.api/src/org/eclipse/osbp/infogrid/api/SingleECViewGridFactory.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.infogrid.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.ecview.core.common.model.core.YCompare;
+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.extension.grid.CxGrid;
+import org.eclipse.osbp.ecview.extension.grid.CxGridColumn;
+import org.eclipse.osbp.ecview.extension.grid.CxGridFactory;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridButtonRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridDateRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridImageRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridIndicatorRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridNumberRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridPriceRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridProgressBarRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridQuantityRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridRenderer;
+import org.eclipse.osbp.ecview.extension.grid.renderer.CxGridRendererFactory;
+import org.eclipse.osbp.ecview.extension.model.converter.YConverterFactory;
+import org.eclipse.osbp.ecview.extension.model.converter.YNumericToResourceConfig;
+import org.eclipse.osbp.ecview.extension.model.converter.YNumericToResourceConverter;
+import org.eclipse.osbp.ecview.extension.model.converter.YStringToResourceConfig;
+import org.eclipse.osbp.ecview.extension.model.converter.YStringToResourceConverter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+import org.eclipse.osbp.runtime.common.types.IBundleSpace;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SingleECViewGridFactory implements IECViewGridFactory {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(SingleECViewGridFactory.class);
+
+ private CxGridFactory gridFactory = CxGridFactory.eINSTANCE;
+
+ // make extendable by services later
+ private IECViewGridEditorFieldFactory editorFieldFactory = new ECViewGridEditorFieldFactory();
+
+ public SingleECViewGridFactory() {
+
+ }
+
+ @Override
+ public CxGrid createGrid(Class<?> inputType, CxGridSource gridSource) {
+
+ BundleContext bc = FrameworkUtil.getBundle(getClass())
+ .getBundleContext();
+ ServiceReference<IBundleSpace> bsRef = bc
+ .getServiceReference(IBundleSpace.class);
+ if (bsRef == null) {
+ LOGGER.error("No BundleSpace available.");
+ return gridFactory.createCxGrid();
+ }
+ IBundleSpace bundleSpace = bc.getService(bsRef);
+
+ Class<?> rootType = null;
+ try {
+ rootType = bundleSpace.forName(gridSource.getRootTypeFQN());
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ // TODO: check the case "rootType == null". Maybe use a default rootType
+ // to continue ...
+
+ bc.ungetService(bsRef);
+
+ CxGrid grid = gridFactory.createCxGrid();
+ grid.setId(GRID_ID);
+ grid.getProperties().put(GRIDSOURCE_ID, gridSource.getId());
+ grid.setEditorEnabled(isEditable(gridSource));
+ grid.setHeaderVisible(true);
+ grid.setCustomFilters(false);
+ grid.setFilteringVisible(true);
+ grid.setUseBeanService(!gridSource.getTags().contains(IECViewGridSourceDescriptor.PROP_MANUAL_BEANS));
+ grid.setColumnReorderingAllowed(true);
+ if (rootType != null) {
+
+ grid.setType(rootType);
+ grid.setTypeQualifiedName(rootType.getName());
+
+ for (CxGridProperty prop : gridSource.getProperties()) {
+ CxGridColumn column = gridFactory.createCxGridColumn();
+ column.setPropertyPath(prop.getDotPath());
+ column.setPropertyId(prop.getDotPath());
+
+ Class<?> propertyType = BeanProperties
+ .value(rootType, prop.getDotPath())
+ .getPropertyDescriptor().getPropertyType();
+
+ // editable
+ YField yEditorField = getEditorField(prop, propertyType);
+ column.setEditable(yEditorField != null);
+ column.setEditorField(yEditorField);
+
+ Pair pair = createRendererPair(prop, propertyType);
+ column.setRenderer(pair.renderer);
+ column.setConverter(pair.converter);
+ // column.setMaxWidthPixels(50);
+ grid.getColumns().add(column);
+ }
+
+ }
+
+ for (CxGridSourceInput input : gridSource.getInputs()) {
+ if (inputType.getName().equals(input.getInputTypeFQN())) {
+ for (CxGridSourceEQFilter filter : input.getFilters()) {
+ // take the filter value from the input
+ filter.getInputTypePropertyPath();
+ }
+ }
+ }
+ return grid;
+ }
+
+ /**
+ * Returns the editor field for the given propertyType.
+ *
+ * @param prop
+ * @param propertyType
+ * @return
+ */
+ protected YField getEditorField(CxGridProperty prop, Class<?> propertyType) {
+ return editorFieldFactory.createEditorField(prop, propertyType);
+ }
+
+ protected boolean isEditable(CxGridSource gridSource) {
+ for (CxGridProperty prop : gridSource.getProperties()) {
+ if (prop.isEditable()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Creates a renderer for the given property.
+ *
+ * @param prop
+ * @param propertyType
+ * @return
+ */
+ protected Pair createRendererPair(CxGridProperty prop, Class<?> propertyType) {
+
+ Pair pair = new Pair();
+
+ CxGridRendererFactory factory = CxGridRendererFactory.eINSTANCE;
+ if (prop.getStyle() == null) {
+ return createBadRenderer();
+ }
+
+ EClass styleClass = prop.getStyle().eClass();
+ switch (styleClass.getClassifierID()) {
+ case CxGridStylePackage.CX_GRID_PROP_BOOLEAN_STYLE:
+ pair.renderer = factory.createCxGridBooleanRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE: {
+ CxGridPropDateStyle style = (CxGridPropDateStyle) prop.getStyle();
+ CxGridDateRenderer renderer = factory.createCxGridDateRenderer();
+ renderer.setDateFormat(style.getDateFormat());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE: {
+ if (!isNumeric(propertyType)) {
+ return createBadRenderer();
+ }
+ CxGridPropNumberStyle style = (CxGridPropNumberStyle) prop
+ .getStyle();
+ CxGridNumberRenderer renderer = factory
+ .createCxGridNumberRenderer();
+ renderer.setNumberFormat(style.getNumberFormat());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE: {
+ CxGridPropButtonStyle style = (CxGridPropButtonStyle) prop
+ .getStyle();
+ CxGridButtonRenderer renderer = factory
+ .createCxGridButtonRenderer();
+ renderer.setEventTopic(style.getEventTopic());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE: {
+ CxGridPropImageStyle style = (CxGridPropImageStyle) prop.getStyle();
+ YConverter converter = toConverter(style.getConfigs());
+ CxGridImageRenderer renderer = factory.createCxGridImageRenderer();
+ renderer.setEventTopic(style.getEventTopic());
+ pair.renderer = renderer;
+ pair.converter = converter;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_HTML_STYLE:
+ pair.renderer = factory.createCxGridHtmlRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE: {
+ CxGridPropProgressbarStyle style = (CxGridPropProgressbarStyle) prop
+ .getStyle();
+ CxGridProgressBarRenderer renderer = factory
+ .createCxGridProgressBarRenderer();
+ renderer.setMaxValue(style.getMaxValue());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE: {
+ CxGridPropIndicatorStyle style = (CxGridPropIndicatorStyle) prop
+ .getStyle();
+ CxGridIndicatorRenderer renderer = factory
+ .createCxGridIndicatorRenderer();
+ renderer.setGreenStarts(style.getGreenStarts());
+ renderer.setRedEnds(style.getRedEnds());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE:
+ pair.renderer = factory.createCxGridHtmlRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_TEXT_STYLE:
+ pair.renderer = factory.createCxGridHtmlRenderer();
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE: {
+ CxGridPropQuantityStyle style = (CxGridPropQuantityStyle) prop
+ .getStyle();
+ CxGridQuantityRenderer renderer = factory
+ .createCxGridQuantityRenderer();
+ renderer.setHtmlPattern(style.getHtmlPattern());
+ renderer.setNullRepresentation("");
+ renderer.setNumberFormat(style.getValueNumberFormat());
+ renderer.setUomPropertyPath(style.getUomPropertyDotPath());
+ renderer.setValuePropertyPath(style.getValuePropertyDotPath());
+ pair.renderer = renderer;
+ }
+ break;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE: {
+ CxGridPropPriceStyle style = (CxGridPropPriceStyle) prop.getStyle();
+ CxGridPriceRenderer renderer = factory.createCxGridPriceRenderer();
+ renderer.setHtmlPattern(style.getHtmlPattern());
+ renderer.setNullRepresentation("");
+ renderer.setNumberFormat(style.getValueNumberFormat());
+ renderer.setCurrencyPropertyPath(style.getCurrencyPropertyDotPath());
+ renderer.setValuePropertyPath(style.getValuePropertyDotPath());
+ pair.renderer = renderer;
+ }
+ break;
+ }
+
+ return pair;
+ }
+
+ protected boolean isNumeric(Class<?> propertyType) {
+ boolean result = Number.class.isAssignableFrom(propertyType);
+ if (!result) {
+ if (propertyType.isPrimitive() && propertyType != Boolean.TYPE
+ && propertyType != Void.TYPE) {
+ result = true;
+ }
+ }
+ return result;
+ }
+
+ protected YConverter toConverter(EList<CxGridStyleConfig> configs) {
+ if (configs.isEmpty()) {
+ return null;
+ }
+
+ CxGridStyleConfig cxConfig = configs.get(0);
+ if (cxConfig instanceof CxGridStyleConfigStringToResource) {
+ List<YStringToResourceConfig> newConfigs = toStringToResourceConfig(configs);
+ YStringToResourceConverter converter = YConverterFactory.eINSTANCE
+ .createYStringToResourceConverter();
+ converter.getConfigs().addAll(newConfigs);
+ return converter;
+ } else if (cxConfig instanceof CxGridStyleConfigNumericToResource) {
+ List<YNumericToResourceConfig> newConfigs = toNumberToResourceConfig(configs);
+ YNumericToResourceConverter converter = YConverterFactory.eINSTANCE
+ .createYNumericToResourceConverter();
+ converter.getConfigs().addAll(newConfigs);
+ return converter;
+ }
+
+ return null;
+ }
+
+ private List<YNumericToResourceConfig> toNumberToResourceConfig(
+ EList<CxGridStyleConfig> configs) {
+ List<YNumericToResourceConfig> result = new ArrayList<>(configs.size());
+ for (CxGridStyleConfig config : configs) {
+ if (!(config instanceof CxGridStyleConfigNumericToResource)) {
+ LOGGER.warn("you mixed up different style configs!");
+ continue;
+ }
+
+ CxGridStyleConfigNumericToResource givenConfig = (CxGridStyleConfigNumericToResource) config;
+ YNumericToResourceConfig newConfig = YConverterFactory.eINSTANCE
+ .createYNumericToResourceConfig();
+ newConfig.setResourceThemePath(givenConfig.getResourceThemePath());
+ newConfig.setValue(givenConfig.getValue());
+ newConfig.setCompare(toGridCompare(givenConfig.getCompare()));
+ result.add(newConfig);
+ }
+
+ return result;
+ }
+
+ private YCompare toGridCompare(CxGridCompare compare) {
+ switch (compare) {
+ case EQUAL:
+ return YCompare.EQUAL;
+ case GREATER_EQUAL:
+ return YCompare.GREATER_EQUAL;
+ case GREATER_THAN:
+ return YCompare.GREATER_THAN;
+ case LOWER_EQUAL:
+ return YCompare.LOWER_EQUAL;
+ case LOWER_THAN:
+ return YCompare.LOWER_THAN;
+ case NOT_EQUAL:
+ return YCompare.NOT_EQUAL;
+ }
+ return null;
+ }
+
+ private List<YStringToResourceConfig> toStringToResourceConfig(
+ EList<CxGridStyleConfig> configs) {
+ List<YStringToResourceConfig> result = new ArrayList<>(configs.size());
+ for (CxGridStyleConfig config : configs) {
+ if (!(config instanceof CxGridStyleConfigStringToResource)) {
+ LOGGER.warn("you mixed up different style configs!");
+ continue;
+ }
+
+ CxGridStyleConfigStringToResource givenConfig = (CxGridStyleConfigStringToResource) config;
+ YStringToResourceConfig newConfig = YConverterFactory.eINSTANCE
+ .createYStringToResourceConfig();
+ newConfig.setResourceThemePath(givenConfig.getResourceThemePath());
+ newConfig.setValue(givenConfig.getValue());
+ newConfig.setCompare(toGridCompare(givenConfig.getCompare()));
+ result.add(newConfig);
+ }
+
+ return result;
+ }
+
+ protected Pair createBadRenderer() {
+ Pair pair = new Pair();
+ pair.renderer = CxGridRendererFactory.eINSTANCE
+ .createCxGridTextRenderer();
+ return pair;
+ }
+
+ protected static class Pair {
+ public CxGridRenderer renderer;
+ public YConverter converter;
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.ecview/.project b/org.eclipse.osbp.infogrid.ecview/.project
new file mode 100644
index 0000000..276cdd8
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.ecview</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.infogrid.ecview/LICENSE.txt b/org.eclipse.osbp.infogrid.ecview/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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.infogrid.ecview/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.ecview/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..3384f0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/META-INF/MANIFEST.MF
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.ecview
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.ecview
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: 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.ecview.core.extension.editparts;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.infogrid.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.extension.grid.model,
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.web.ecview.presentation.vaadin;bundle-version="[0.9.0,0.10.0)",
+ com.vaadin.server;bundle-version="7.5.7",
+ org.jsoup;bundle-version="1.7.2",
+ org.eclipse.osbp.ecview.core.util.emf;bundle-version="[0.9.0,0.10.0)",
+ org.apache.commons.beanutils;bundle-version="1.9.2",
+ org.eclipse.osbp.ecview.extension.grid.editparts,
+ org.eclipse.osbp.ui.api
+Import-Package: org.eclipse.osbp.user;version="0.9.0",
+ org.osgi.framework;version="1.8.0",
+ org.osgi.service.component;version="1.1.0",
+ org.osgi.service.component.annotations;version="1.2.0",
+ org.slf4j;version="1.7.2"
+Service-Component: OSGI-INF/org.eclipse.osbp.infogrid.ecview.GridSourceDescriptorProvider.xml
+Export-Package: org.eclipse.osbp.infogrid.ecview;x-internal:=true;version="0.9.0"
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.infogrid.ecview/OSGI-INF/org.eclipse.osbp.infogrid.ecview.GridSourceDescriptorProvider.xml b/org.eclipse.osbp.infogrid.ecview/OSGI-INF/org.eclipse.osbp.infogrid.ecview.GridSourceDescriptorProvider.xml
new file mode 100644
index 0000000..afb0855
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/OSGI-INF/org.eclipse.osbp.infogrid.ecview.GridSourceDescriptorProvider.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.infogrid.ecview.GridSourceDescriptorProvider">
+ <property name="kind" value="ecview"/>
+ <service>
+ <provide interface="org.eclipse.osbp.infogrid.api.IGridSourceDescriptorProvider"/>
+ </service>
+ <implementation class="org.eclipse.osbp.infogrid.ecview.GridSourceDescriptorProvider"/>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.infogrid.ecview/about.html b/org.eclipse.osbp.infogrid.ecview/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.ecview/about.ini b/org.eclipse.osbp.infogrid.ecview/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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.infogrid.ecview/about.mappings b/org.eclipse.osbp.infogrid.ecview/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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.infogrid.ecview/about.properties b/org.eclipse.osbp.infogrid.ecview/about.properties
new file mode 100644
index 0000000..62500ca
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.ecview
+
+################ 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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.ecview/build.properties b/org.eclipse.osbp.infogrid.ecview/build.properties
new file mode 100644
index 0000000..b048b81
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/build.properties
@@ -0,0 +1,12 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\
+ .,\
+ OSGI-INF/org.eclipse.osbp.infogrid.ecview.GridSourceDescriptorProvider.xml,\
+ OSGI-INF/,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+src.includes = about.properties, about.mappings, about.ini, about.html, license.html,\
+ epl-v10.html,\
+ LICENSE.txt
diff --git a/org.eclipse.osbp.infogrid.ecview/epl-v10.html b/org.eclipse.osbp.infogrid.ecview/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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.infogrid.ecview/license.html b/org.eclipse.osbp.infogrid.ecview/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/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™ 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.infogrid.ecview/pom.xml b/org.eclipse.osbp.infogrid.ecview/pom.xml
new file mode 100644
index 0000000..306481c
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.ecview</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.ecview/src/org/eclipse/osbp/infogrid/ecview/ECViewGridSourceDescriptor.java b/org.eclipse.osbp.infogrid.ecview/src/org/eclipse/osbp/infogrid/ecview/ECViewGridSourceDescriptor.java
new file mode 100644
index 0000000..68dfc3e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/src/org/eclipse/osbp/infogrid/ecview/ECViewGridSourceDescriptor.java
@@ -0,0 +1,322 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.ecview;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+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.YBeanSlot;
+import org.eclipse.osbp.ecview.core.common.model.core.YView;
+import org.eclipse.osbp.ecview.core.extension.model.extension.util.SimpleExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.util.emf.ModelUtil;
+import org.eclipse.osbp.ecview.extension.grid.CxGrid;
+import org.eclipse.osbp.ecview.extension.grid.CxGridPackage;
+import org.eclipse.osbp.ecview.extension.grid.editparts.IGridEditpart;
+import org.eclipse.osbp.ecview.extension.grid.util.CxGridUtil;
+import org.eclipse.osbp.infogrid.api.AbstractGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IECViewGridFactory;
+import org.eclipse.osbp.infogrid.api.IECViewGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.runtime.common.i18n.II18nService;
+import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.ui.api.useraccess.IUserAccessService;
+import org.eclipse.osbp.user.User;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.vaadin.ui.CssLayout;
+
+/**
+ * You need to pass the following properties during the creation of the
+ * descriptor.
+ * <p>
+ * <h2>services</h2>
+ * II18nService<br>
+ * E4EventBrokerAdapter<br>
+ * <h2>properties</h2>
+ * locale<br>
+ *
+ * <h2>Sample</h2>
+ *
+ * <pre>
+ * // render the Vaadin UI
+ * Map<String, Object> properties = new HashMap<String, Object>();
+ *
+ * // register services to be used
+ * Map<String, Object> services = new HashMap<String, Object>();
+ * services.put(
+ * org.eclipse.osbp.runtime.common.event.IEventBroker.class.getName(),
+ * new E4EventBrokerAdapter(e4EventBroker));
+ * services.put(II18nService.class.getName(), i18nService);
+ * properties.put(IViewContext.PARAM_SERVICES, services);
+ */
+public class ECViewGridSourceDescriptor extends AbstractGridSourceDescriptor
+ implements IECViewGridSourceDescriptor {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(ECViewGridSourceDescriptor.class);
+
+ private static final String PROP_LOCALE = "locale";
+ private static final String BEAN_SLOT = "input";
+
+ private IECViewGridFactory factory;
+ private IViewContext viewContext;
+
+ private Locale locale;
+
+ private CxGrid cxGrid;
+
+ private SavedAdapter savedAdapter;
+
+ private EditorSavedStrategy editorSavedStrategy;
+
+ public ECViewGridSourceDescriptor(Class<?> inputType, CxGridSource source,
+ IECViewGridFactory factory) {
+ super(inputType, source);
+ this.factory = factory;
+ }
+
+ @Override
+ public Object getComponent() {
+ checkDisposed();
+
+ if (viewContext == null) {
+ try {
+ renderView();
+ } catch (ContextException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+ return viewContext.getRootLayout();
+ }
+
+ protected void renderView() throws ContextException {
+
+ cxGrid = factory.createGrid(getInputType(), getSource());
+ SimpleExtensionModelFactory yFactory = new SimpleExtensionModelFactory();
+
+ YView yView = yFactory.createView();
+ YBeanSlot yBeanSlot = yFactory.createBeanSlot();
+ yBeanSlot.setName(BEAN_SLOT);
+ yBeanSlot.setValueType(Object.class);
+ yView.getBeanSlots().add(yBeanSlot);
+ yView.setContent(cxGrid);
+
+ IUserAccessService userAccessService;
+
+ // First alternative to get IUserAccessService via descriptor properties
+ @SuppressWarnings("unchecked")
+ Map<String, Object> services = (Map<String, Object>) properties
+ .get(IViewContext.PARAM_SERVICES);
+ if (services.containsKey(IUser.class.getName())) {
+ User user = (User) services.get(IUser.class.getName());
+ if (user != null) {
+ userAccessService = user.getUserAccessService();
+ cxGrid = CxGridUtil.setPermissions(userAccessService, cxGrid);
+ }
+ }
+ // Second alternative to get IUserAccessService via bundle context
+ // BundleContext bc = FrameworkUtil.getBundle(getClass())
+ // .getBundleContext();
+ // ServiceReference<IUserAccessService> ref = bc
+ // .getServiceReference(IUserAccessService.class);
+ // if (ref != null) {
+ // userAccessService = bc.getService(ref);
+ // cxGrid = CxGridUtil.setPermissions(userAccessService, cxGrid);
+ // }
+
+ CssLayout rootLayout = new CssLayout();
+ rootLayout.setSizeFull();
+ VaadinRenderer renderer = new VaadinRenderer();
+ viewContext = renderer.render(rootLayout, yView, properties);
+ viewContext.setLocale(locale);
+
+ updateSavedStrategy();
+ }
+
+ @Override
+ public void setInput(Object value) {
+ checkDisposed();
+
+ if (viewContext != null) {
+ viewContext.setBean(BEAN_SLOT, value);
+ IGridEditpart editpart = ModelUtil.findEditpart(cxGrid);
+ if (editpart != null) {
+ Map<String, Object> filterProps = createFilterMap(value);
+ editpart.setFilter(filterProps);
+ }
+ }
+ }
+
+ /**
+ * Creates a map containing the property as key and the filterValue as
+ * value.<br>
+ * These values will be added to the Grid as filter statements.
+ *
+ * @param value
+ * @return
+ */
+ protected Map<String, Object> createFilterMap(Object value) {
+ Map<String, Object> filterProps = new HashMap<>();
+ if (value == null) {
+ return filterProps;
+ }
+ CxGridSourceInput input = findGridSourceInput(getSource());
+ if (input != null) {
+ for (CxGridSourceEQFilter filter : input.getFilters()) {
+ // the target property from the grids content.
+ String targetFilterProp = filter.getRootTypePropertyPath()
+ .getDotPath();
+ // the source property where the filter value should be used
+ // from
+ String sourceFilterProp = filter.getInputTypePropertyPath()
+ .getDotPath();
+ try {
+ Object sourceFilterValue = PropertyUtils.getNestedProperty(
+ value, sourceFilterProp);
+ filterProps.put(targetFilterProp, sourceFilterValue);
+ } catch (IllegalAccessException | InvocationTargetException
+ | NoSuchMethodException e) {
+ LOGGER.error("{}", e);
+ }
+ }
+ }
+ return filterProps;
+ }
+
+ private CxGridSourceInput findGridSourceInput(CxGridSource source) {
+ for (CxGridSourceInput input : source.getInputs()) {
+ if (getInputType().getName().equals(input.getInputTypeFQN())) {
+ return input;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void setLocale(Locale locale) {
+ this.locale = locale;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public void setProperties(Map<String, Object> properties) {
+ super.setProperties(properties);
+
+ if (properties == null) {
+ LOGGER.warn("You should pass properties to ensure proper functionality!");
+ return;
+ }
+
+ if (!properties.containsKey(PROP_LOCALE)) {
+ LOGGER.warn("You should pass the locale.");
+ } else {
+ this.locale = (Locale) properties.get(PROP_LOCALE);
+ }
+
+ if (properties.containsKey(PROP_MANUAL_BEANS)) {
+ boolean useManualBeans = (boolean) properties
+ .get(PROP_MANUAL_BEANS);
+ if (useManualBeans) {
+ source.getTags().add(PROP_MANUAL_BEANS);
+ }
+ } else {
+ source.getTags().remove(PROP_MANUAL_BEANS);
+ }
+
+ if (!properties.containsKey(IViewContext.PARAM_SERVICES)) {
+ LOGGER.warn("You should pass some services. See JavaDoc of this class.");
+ } else {
+ Map<String, Object> services = (Map<String, Object>) properties
+ .get(IViewContext.PARAM_SERVICES);
+ if (!services.containsKey(II18nService.ID)) {
+ LOGGER.warn("You should pass the I18nService.");
+ }
+ if (!services
+ .containsKey("org.eclipse.osbp.runtime.common.event.IEventBroker")) {
+ LOGGER.warn("You should pass the org.eclipse.osbp.runtime.common.event.IEventBroker as an E4EventBrokerAdapter.");
+ }
+ }
+ }
+
+ @Override
+ protected void internalDispose() {
+
+ if (savedAdapter != null) {
+ cxGrid.eAdapters().remove(savedAdapter);
+ savedAdapter = null;
+ }
+
+ if (viewContext != null) {
+ viewContext.dispose();
+ viewContext = null;
+ }
+
+ if (properties != null) {
+ properties.clear();
+ properties = null;
+ }
+
+ factory = null;
+ }
+
+ @Override
+ public void setEditorSavedStrategy(EditorSavedStrategy strategy) {
+ this.editorSavedStrategy = strategy;
+ updateSavedStrategy();
+ }
+
+ protected void updateSavedStrategy() {
+ if (cxGrid == null) {
+ return;
+ }
+ if (editorSavedStrategy != null) {
+ if (savedAdapter == null) {
+ savedAdapter = new SavedAdapter();
+ }
+ if (!cxGrid.eAdapters().contains(savedAdapter)) {
+ cxGrid.eAdapters().add(savedAdapter);
+ }
+ } else {
+ if (savedAdapter != null) {
+ cxGrid.eAdapters().remove(savedAdapter);
+ }
+ }
+ }
+
+ @Override
+ public CxGrid getGrid() {
+ return cxGrid;
+ }
+
+ private class SavedAdapter extends AdapterImpl {
+ @Override
+ public void notifyChanged(Notification msg) {
+ if (msg.getFeature() == CxGridPackage.Literals.CX_GRID__EDITOR_SAVED) {
+ if (editorSavedStrategy != null) {
+ editorSavedStrategy.editorSaved(msg.getNewValue());
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.ecview/src/org/eclipse/osbp/infogrid/ecview/GridSourceDescriptorProvider.java b/org.eclipse.osbp.infogrid.ecview/src/org/eclipse/osbp/infogrid/ecview/GridSourceDescriptorProvider.java
new file mode 100644
index 0000000..b07e437
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.ecview/src/org/eclipse/osbp/infogrid/ecview/GridSourceDescriptorProvider.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.infogrid.ecview;
+
+import org.eclipse.osbp.infogrid.api.DefaultECViewGridFactory;
+import org.eclipse.osbp.infogrid.api.IECViewGridFactory;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor.ConfigCallback;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptorProvider;
+import org.eclipse.osbp.infogrid.api.SingleECViewGridFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * Creates an ECViewGridSourceDescriptor which is based on ECView.
+ */
+@Component(property = { IGridSourceDescriptorProvider.PROP_KIND + "="
+ + IGridSourceDescriptorProvider.KIND_ECVIEW })
+public class GridSourceDescriptorProvider implements
+ IGridSourceDescriptorProvider {
+
+ @Override
+ public IGridSourceDescriptor createDescriptor(Class<?> inputType,
+ CxGridSource source, ConfigCallback callback) {
+ ECViewGridSourceDescriptor descriptor = new ECViewGridSourceDescriptor(
+ inputType, source, createFactory(source));
+ if (callback != null) {
+ descriptor.setProperties(callback.getProperties(descriptor));
+ }
+ return descriptor;
+ }
+
+ /**
+ * Creates a proper grid factory for different use cases.
+ *
+ * @param source
+ * @return
+ */
+ private IECViewGridFactory createFactory(CxGridSource source) {
+ if (source.getTags().contains(IGridSourceDescriptor.TAG__SINGLE_GRID)) {
+ return new SingleECViewGridFactory();
+ }
+ return new DefaultECViewGridFactory();
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.feature/.project b/org.eclipse.osbp.infogrid.feature/.project
new file mode 100644
index 0000000..c90de97
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.feature</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.infogrid.feature/LICENSE.txt b/org.eclipse.osbp.infogrid.feature/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/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.infogrid.feature/build.properties b/org.eclipse.osbp.infogrid.feature/build.properties
new file mode 100644
index 0000000..68510b7
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/build.properties
@@ -0,0 +1,9 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ epl-v10.html,\
+ build.properties,\
+ LICENSE.txt,\
+ license.html
+src.includes = LICENSE.txt,\
+ epl-v10.html,\
+ feature.properties
diff --git a/org.eclipse.osbp.infogrid.feature/epl-v10.html b/org.eclipse.osbp.infogrid.feature/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/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.infogrid.feature/feature.properties b/org.eclipse.osbp.infogrid.feature/feature.properties
new file mode 100644
index 0000000..34cf8a2
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/feature.properties
@@ -0,0 +1,169 @@
+###############################################################################
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany).
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Klemens Edler - 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 =OSBP InfoGrid
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse OSBP
+
+# "description" property - description of the feature
+description=Contains all features required for the OSBP InfoGrid
+
+# "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.infogrid.feature/feature.xml b/org.eclipse.osbp.infogrid.feature/feature.xml
new file mode 100644
index 0000000..43e8479
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/feature.xml
@@ -0,0 +1,83 @@
+<?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.infogrid.feature"
+ 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.infogrid.api"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osbp.infogrid.ecview"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osbp.infogrid.model"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osbp.infogrid.services"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <!--
+
+
+ <plugin
+ id="org.eclipse.osbp.infogrid.services.tests"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/> -->
+
+ <plugin
+ id="org.eclipse.osbp.infogrid.vaaclipse"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.osbp.infogrid.vaadin"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/org.eclipse.osbp.infogrid.feature/license.html b/org.eclipse.osbp.infogrid.feature/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/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™ 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.infogrid.feature/pom.xml b/org.eclipse.osbp.infogrid.feature/pom.xml
new file mode 100644
index 0000000..b78ddaa
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/pom.xml
@@ -0,0 +1,79 @@
+<?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 implementation 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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.osbp.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <artifactId>org.eclipse.osbp.infogrid.feature</artifactId>
+ <packaging>eclipse-feature</packaging>
+ <description>Contains all features for the OSBP Infogrid</description>
+
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho.extras</groupId>
+ <artifactId>tycho-source-feature-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <executions>
+ <execution>
+ <id>source-feature</id>
+ <phase>package</phase>
+ <goals>
+ <goal>source-feature</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <labelSuffix> (source)</labelSuffix>
+ <excludes>
+ </excludes>
+ </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.infogrid.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.infogrid.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/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.infogrid.feature/src/overview.html b/org.eclipse.osbp.infogrid.feature/src/overview.html
new file mode 100644
index 0000000..d8c5046
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.feature/src/overview.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <title>OSBP Tools Graphical Entity</title>
+</head>
+<body>
+<p>The <strong>OSBP Infogrid </strong>implements the read only grid functionality.</p>
+
+<p> </p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.infogrid.model.edit/.project b/org.eclipse.osbp.infogrid.model.edit/.project
new file mode 100644
index 0000000..7174e52
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.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.infogrid.model.edit/LICENSE.txt b/org.eclipse.osbp.infogrid.model.edit/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.model.edit/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.model.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c701286
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.model.edit
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.model.edit;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.infogrid.model.gridsource.provider.CxGridSourceEditPlugin$Implementation
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.infogrid.model.gridsource.provider;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.style.provider;version="0.9.0"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.xtext.common.types;bundle-version="[2.7.3,2.8.0)";visibility:=reexport,
+ org.eclipse.xtext.common.types.edit;bundle-version="[2.7.3,2.8.0)";visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.infogrid.model.edit/about.html b/org.eclipse.osbp.infogrid.model.edit/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.model.edit/about.ini b/org.eclipse.osbp.infogrid.model.edit/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.model.edit/about.mappings b/org.eclipse.osbp.infogrid.model.edit/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.model.edit/about.properties b/org.eclipse.osbp.infogrid.model.edit/about.properties
new file mode 100644
index 0000000..90f12f2
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.model.edit/build.properties b/org.eclipse.osbp.infogrid.model.edit/build.properties
new file mode 100644
index 0000000..0fd0b64
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/build.properties
@@ -0,0 +1,17 @@
+#
+
+bin.includes = about.properties, about.mappings, about.ini, about.html, .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+jars.compile.order = .
+source.. = src/
+output.. = target/classes/
+src.includes = about.properties, about.mappings, about.ini, about.html, license.html,\
+ epl-v10.html,\
+ LICENSE.txt,\
+ icons/
diff --git a/org.eclipse.osbp.infogrid.model.edit/epl-v10.html b/org.eclipse.osbp.infogrid.model.edit/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/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.infogrid.model.edit/icons/full/ctool16/CreateCxGridNestedField_path_CxGridNestedPath.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridNestedField_path_CxGridNestedPath.gif
new file mode 100644
index 0000000..c6407cd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridNestedField_path_CxGridNestedPath.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridNestedPath_path_CxGridNestedPath.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridNestedPath_path_CxGridNestedPath.gif
new file mode 100644
index 0000000..a1607f9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridNestedPath_path_CxGridNestedPath.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfig.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfig.gif
new file mode 100644
index 0000000..427fb58
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfig.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfigNumericToResource.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfigNumericToResource.gif
new file mode 100644
index 0000000..4660f20
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfigNumericToResource.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfigStringToResource.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfigStringToResource.gif
new file mode 100644
index 0000000..30d6c62
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropImageStyle_configs_CxGridStyleConfigStringToResource.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropPriceStyle_currencyPropertyPath_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropPriceStyle_currencyPropertyPath_CxGridNestedField.gif
new file mode 100644
index 0000000..9ff2342
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropPriceStyle_currencyPropertyPath_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropPriceStyle_valuePropertyPath_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropPriceStyle_valuePropertyPath_CxGridNestedField.gif
new file mode 100644
index 0000000..9ff2342
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropPriceStyle_valuePropertyPath_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropQuantityStyle_uomPropertyPath_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropQuantityStyle_uomPropertyPath_CxGridNestedField.gif
new file mode 100644
index 0000000..c9f27e5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropQuantityStyle_uomPropertyPath_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropQuantityStyle_valuePropertyPath_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropQuantityStyle_valuePropertyPath_CxGridNestedField.gif
new file mode 100644
index 0000000..c9f27e5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropQuantityStyle_valuePropertyPath_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropSparklineStyle_field_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropSparklineStyle_field_CxGridNestedField.gif
new file mode 100644
index 0000000..15cbbad
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropSparklineStyle_field_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropSparklineStyle_path_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropSparklineStyle_path_CxGridNestedField.gif
new file mode 100644
index 0000000..15cbbad
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridPropSparklineStyle_path_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_path_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_path_CxGridNestedField.gif
new file mode 100644
index 0000000..9ad2ce6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_path_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropBooleanStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropBooleanStyle.gif
new file mode 100644
index 0000000..a2eae98
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropBooleanStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropButtonStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropButtonStyle.gif
new file mode 100644
index 0000000..9696206
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropButtonStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropDateStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropDateStyle.gif
new file mode 100644
index 0000000..18e4f1a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropDateStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropHtmlStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropHtmlStyle.gif
new file mode 100644
index 0000000..61e16c0
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropHtmlStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropImageStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropImageStyle.gif
new file mode 100644
index 0000000..998cc10
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropImageStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropIndicatorStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropIndicatorStyle.gif
new file mode 100644
index 0000000..83969f9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropIndicatorStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropNumberStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropNumberStyle.gif
new file mode 100644
index 0000000..7bef7ae
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropNumberStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropPriceStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropPriceStyle.gif
new file mode 100644
index 0000000..9130fd6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropPriceStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropProgressbarStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropProgressbarStyle.gif
new file mode 100644
index 0000000..9696206
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropProgressbarStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropQuantityStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropQuantityStyle.gif
new file mode 100644
index 0000000..ac035ea
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropQuantityStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropSparklineStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropSparklineStyle.gif
new file mode 100644
index 0000000..014b83a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropSparklineStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropTextStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropTextStyle.gif
new file mode 100644
index 0000000..4aa68ea
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridProperty_style_CxGridPropTextStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceEQFilter_inputTypePropertyPath_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceEQFilter_inputTypePropertyPath_CxGridNestedField.gif
new file mode 100644
index 0000000..15cbbad
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceEQFilter_inputTypePropertyPath_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceEQFilter_rootTypePropertyPath_CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceEQFilter_rootTypePropertyPath_CxGridNestedField.gif
new file mode 100644
index 0000000..15cbbad
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceEQFilter_rootTypePropertyPath_CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_filters_CxGridSourceEQFilter.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_filters_CxGridSourceEQFilter.gif
new file mode 100644
index 0000000..7601130
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_filters_CxGridSourceEQFilter.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmAnyTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmAnyTypeReference.gif
new file mode 100644
index 0000000..d192e7c
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmAnyTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmDelegateTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmDelegateTypeReference.gif
new file mode 100644
index 0000000..0403fbd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmDelegateTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmGenericArrayTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmGenericArrayTypeReference.gif
new file mode 100644
index 0000000..3fbacda
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmGenericArrayTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmInnerTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmInnerTypeReference.gif
new file mode 100644
index 0000000..d7b26a7
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmInnerTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmMultiTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmMultiTypeReference.gif
new file mode 100644
index 0000000..3119072
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmMultiTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmParameterizedTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmParameterizedTypeReference.gif
new file mode 100644
index 0000000..8e4853e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmParameterizedTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmSynonymTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmSynonymTypeReference.gif
new file mode 100644
index 0000000..0dabd12
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmSynonymTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmUnknownTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmUnknownTypeReference.gif
new file mode 100644
index 0000000..f4ea4b7
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmUnknownTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmWildcardTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmWildcardTypeReference.gif
new file mode 100644
index 0000000..4c78bee
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSourceInput_inputType_JvmWildcardTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_inputs_CxGridSourceInput.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_inputs_CxGridSourceInput.gif
new file mode 100644
index 0000000..bcd0fbd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_inputs_CxGridSourceInput.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_properties_CxGridProperty.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_properties_CxGridProperty.gif
new file mode 100644
index 0000000..fe6b442
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_properties_CxGridProperty.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmAnyTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmAnyTypeReference.gif
new file mode 100644
index 0000000..00241cb
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmAnyTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmDelegateTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmDelegateTypeReference.gif
new file mode 100644
index 0000000..d064fcb
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmDelegateTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmGenericArrayTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmGenericArrayTypeReference.gif
new file mode 100644
index 0000000..c4ab846
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmGenericArrayTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmInnerTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmInnerTypeReference.gif
new file mode 100644
index 0000000..babcc9e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmInnerTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmMultiTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmMultiTypeReference.gif
new file mode 100644
index 0000000..b71213d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmMultiTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmParameterizedTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmParameterizedTypeReference.gif
new file mode 100644
index 0000000..67fc534
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmParameterizedTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmSynonymTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmSynonymTypeReference.gif
new file mode 100644
index 0000000..171603a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmSynonymTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmUnknownTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmUnknownTypeReference.gif
new file mode 100644
index 0000000..c819bce
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmUnknownTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmWildcardTypeReference.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmWildcardTypeReference.gif
new file mode 100644
index 0000000..d08a6f8
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/ctool16/CreateCxGridSource_rootType_JvmWildcardTypeReference.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridNestedField.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridNestedField.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridNestedField.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridNestedPath.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridNestedPath.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridNestedPath.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropBooleanStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropBooleanStyle.gif
new file mode 100644
index 0000000..30f0c48
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropBooleanStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropDateStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropDateStyle.gif
new file mode 100644
index 0000000..98b351f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropDateStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropImageStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropImageStyle.gif
new file mode 100644
index 0000000..94c953e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropImageStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropIndicatorStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropIndicatorStyle.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropIndicatorStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropNumberStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropNumberStyle.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropNumberStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropPriceStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropPriceStyle.gif
new file mode 100644
index 0000000..35ef84e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropPriceStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropQuantityStyle.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropQuantityStyle.gif
new file mode 100644
index 0000000..136e3b2
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridPropQuantityStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridProperty.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridProperty.gif
new file mode 100644
index 0000000..14af8aa
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridProperty.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSource.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSource.gif
new file mode 100644
index 0000000..caf2804
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSource.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSourceEQFilter.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSourceEQFilter.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSourceEQFilter.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSourceInput.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSourceInput.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridSourceInput.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfig.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfig.gif
new file mode 100644
index 0000000..83afb9b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfig.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfigNumericToResource.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfigNumericToResource.gif
new file mode 100644
index 0000000..c414fe9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfigNumericToResource.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfigStringToResource.gif b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfigStringToResource.gif
new file mode 100644
index 0000000..53500da
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/icons/full/obj16/CxGridStyleConfigStringToResource.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.edit/license.html b/org.eclipse.osbp.infogrid.model.edit/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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™ 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.infogrid.model.edit/plugin.properties b/org.eclipse.osbp.infogrid.model.edit/plugin.properties
new file mode 100644
index 0000000..265967c
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/plugin.properties
@@ -0,0 +1,102 @@
+#
+
+pluginName = CxGridSource 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_CxGridSource_type = Cx Grid Source
+_UI_CxGridProperty_type = Cx Grid Property
+_UI_CxGridPropStyle_type = Cx Grid Prop Style
+_UI_CxGridPropHtmlStyle_type = Cx Grid Prop Html Style
+_UI_CxGridPropTextStyle_type = Cx Grid Prop Text Style
+_UI_CxGridPropButtonStyle_type = Cx Grid Prop Button Style
+_UI_CxGridPropProgressbarStyle_type = Cx Grid Prop Progressbar Style
+_UI_CxGridPropSparklineStyle_type = Cx Grid Prop Sparkline Style
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_CxGridSource_id_feature = Id
+_UI_CxGridSource_kind_feature = Kind
+_UI_CxGridSource_rootType_feature = Root Type
+_UI_CxGridSource_properties_feature = Properties
+_UI_CxGridProperty_field_feature = Field
+_UI_CxGridProperty_style_feature = Style
+_UI_Unknown_feature = Unspecified
+
+_UI_CxGridNestedField_type = Cx Grid Nested Field
+_UI_CxGridNestedPath_type = Cx Grid Nested Path
+_UI_CxGridSource_rootTypeFQN_feature = Root Type FQN
+_UI_CxGridProperty_path_feature = Path
+_UI_CxGridProperty_dotPath_feature = Dot Path
+_UI_CxGridNestedField_field_feature = Field
+_UI_CxGridNestedField_path_feature = Path
+_UI_CxGridNestedPath_field_feature = Field
+_UI_CxGridNestedPath_path_feature = Path
+_UI_CxGridPropButtonStyle_eventTopic_feature = Event Topic
+_UI_CxGridPropProgressbarStyle_maxValue_feature = Max Value
+_UI_CxGridPropSparklineStyle_path_feature = Path
+_UI_CxGridPropSparklineStyle_field_feature = Field
+_UI_CxGridSourceInput_type = Input
+_UI_CxGridSourceEQFilter_type = EQ Filter
+_UI_CxGridPropBooleanStyle_type = Cx Grid Prop Boolean Style
+_UI_CxGridPropNumberStyle_type = Cx Grid Prop Number Style
+_UI_CxGridPropImageStyle_type = Cx Grid Prop Image Style
+_UI_CxGridPropDateStyle_type = Cx Grid Prop Date Style
+_UI_CxGridStyleConfig_type = Config
+_UI_CxGridStyleConfigStringToResource_type = Config String To Resource
+_UI_CxGridStyleConfigNumericToResource_type = Config Numeric To Resource
+_UI_CxGridEventTopicAble_type = Cx Grid Event Topic Able
+_UI_CxGridPropQuantityStyle_type = Cx Grid Prop Quantity Style
+_UI_CxGridPropPriceStyle_type = Cx Grid Prop Price Style
+_UI_CxGridSource_inputs_feature = Inputs
+_UI_CxGridSourceInput_inputType_feature = Input Type
+_UI_CxGridSourceInput_inputTypeFQN_feature = Input Type FQN
+_UI_CxGridSourceInput_filters_feature = Filters
+_UI_CxGridNestedField_dotPath_feature = Dot Path
+_UI_CxGridNestedPath_dotPath_feature = Dot Path
+_UI_CxGridSourceEQFilter_inputTypePropertyPath_feature = Input Type Property Path
+_UI_CxGridSourceEQFilter_rootTypePropertyPath_feature = Root Type Property Path
+_UI_CxGridPropNumberStyle_numberFormat_feature = Number Format
+_UI_CxGridPropImageStyle_configs_feature = Configs
+_UI_CxGridPropDateStyle_dateFormat_feature = Date Format
+_UI_CxGridStyleConfigStringToResource_value_feature = Value
+_UI_CxGridStyleConfigStringToResource_compare_feature = Compare
+_UI_CxGridStyleConfigStringToResource_resourceThemePath_feature = Resource Theme Path
+_UI_CxGridStyleConfigNumericToResource_value_feature = Value
+_UI_CxGridStyleConfigNumericToResource_compare_feature = Compare
+_UI_CxGridStyleConfigNumericToResource_resourceThemePath_feature = Resource Theme Path
+_UI_CxGridEventTopicAble_eventTopic_feature = Event Topic
+_UI_CxGridPropQuantityStyle_valuePropertyPath_feature = Value Property Path
+_UI_CxGridPropQuantityStyle_valuePropertyDotPath_feature = Value Property Dot Path
+_UI_CxGridPropQuantityStyle_valueNumberFormat_feature = Value Number Format
+_UI_CxGridPropQuantityStyle_uomPropertyPath_feature = Uom Property Path
+_UI_CxGridPropQuantityStyle_uomPropertyDotPath_feature = Uom Property Dot Path
+_UI_CxGridPropQuantityStyle_htmlPattern_feature = Html Pattern
+_UI_CxGridPropPriceStyle_valuePropertyPath_feature = Value Property Path
+_UI_CxGridPropPriceStyle_valuePropertyDotPath_feature = Value Property Dot Path
+_UI_CxGridPropPriceStyle_valueNumberFormat_feature = Value Number Format
+_UI_CxGridPropPriceStyle_currencyPropertyPath_feature = Currency Property Path
+_UI_CxGridPropPriceStyle_currencyPropertyDotPath_feature = Currency Property Dot Path
+_UI_CxGridPropPriceStyle_htmlPattern_feature = Html Pattern
+_UI_CxGridCompare_Equal_literal = EQ
+_UI_CxGridCompare_GreaterThan_literal = GT
+_UI_CxGridCompare_GreaterEqual_literal = GE
+_UI_CxGridCompare_LowerThan_literal = LT
+_UI_CxGridCompare_LowerEqual_literal = LE
+_UI_CxGridCompare_NotEqual_literal = NEQ
+_UI_CxGridPropIndicatorStyle_type = Cx Grid Prop Indicator Style
+_UI_CxGridPropIndicatorStyle_greenStarts_feature = Green Starts
+_UI_CxGridPropIndicatorStyle_redStarts_feature = Red Starts
+_UI_CxGridPropIndicatorStyle_redEnds_feature = Red Ends
+_UI_CxGridSource_tags_feature = Tags
+_UI_CxGridSource_selectionEventTopic_feature = Selection Event Topic
+_UI_CxGridProperty_editable_feature = Editable
diff --git a/org.eclipse.osbp.infogrid.model.edit/plugin.xml b/org.eclipse.osbp.infogrid.model.edit/plugin.xml
new file mode 100644
index 0000000..fc5c97d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/plugin.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated gridsource -->
+ <factory
+ uri="http://osbp.eclipse.org/gridsource/v1/core"
+ class="org.eclipse.osbp.infogrid.model.gridsource.provider.CxGridSourceItemProviderAdapterFactory"
+ 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 gridsource -->
+ <factory
+ uri="http://osbp.eclipse.org/gridsource/v1/core/style"
+ class="org.eclipse.osbp.infogrid.model.gridsource.style.provider.CxGridStyleItemProviderAdapterFactory"
+ 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.infogrid.model.edit/pom.xml b/org.eclipse.osbp.infogrid.model.edit/pom.xml
new file mode 100644
index 0000000..19885f2
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.model.edit</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridNestedFieldItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridNestedFieldItemProvider.java
new file mode 100644
index 0000000..fd67bc6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridNestedFieldItemProvider.java
@@ -0,0 +1,228 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridNestedFieldItemProvider
+ 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 CxGridNestedFieldItemProvider(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);
+
+ addFieldPropertyDescriptor(object);
+ addDotPathPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Field feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFieldPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridNestedField_field_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridNestedField_field_feature", "_UI_CxGridNestedField_type"),
+ CxGridSourcePackage.Literals.CX_GRID_NESTED_FIELD__FIELD,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridNestedField_dotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridNestedField_dotPath_feature", "_UI_CxGridNestedField_type"),
+ CxGridSourcePackage.Literals.CX_GRID_NESTED_FIELD__DOT_PATH,
+ 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(CxGridSourcePackage.Literals.CX_GRID_NESTED_FIELD__PATH);
+ }
+ 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 CxGridNestedField.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridNestedField"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridNestedField)object).getDotPath();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridNestedField_type") :
+ getString("_UI_CxGridNestedField_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(CxGridNestedField.class)) {
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__DOT_PATH:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH:
+ 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
+ (CxGridSourcePackage.Literals.CX_GRID_NESTED_FIELD__PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedPath()));
+ }
+
+ /**
+ * 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridNestedPathItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridNestedPathItemProvider.java
new file mode 100644
index 0000000..c56f0ae
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridNestedPathItemProvider.java
@@ -0,0 +1,228 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridNestedPath;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridNestedPathItemProvider
+ 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 CxGridNestedPathItemProvider(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);
+
+ addFieldPropertyDescriptor(object);
+ addDotPathPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Field feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFieldPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridNestedPath_field_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridNestedPath_field_feature", "_UI_CxGridNestedPath_type"),
+ CxGridSourcePackage.Literals.CX_GRID_NESTED_PATH__FIELD,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridNestedPath_dotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridNestedPath_dotPath_feature", "_UI_CxGridNestedPath_type"),
+ CxGridSourcePackage.Literals.CX_GRID_NESTED_PATH__DOT_PATH,
+ 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(CxGridSourcePackage.Literals.CX_GRID_NESTED_PATH__PATH);
+ }
+ 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 CxGridNestedPath.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridNestedPath"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridNestedPath)object).getDotPath();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridNestedPath_type") :
+ getString("_UI_CxGridNestedPath_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(CxGridNestedPath.class)) {
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__DOT_PATH:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH:
+ 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
+ (CxGridSourcePackage.Literals.CX_GRID_NESTED_PATH__PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedPath()));
+ }
+
+ /**
+ * 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridPropertyItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridPropertyItemProvider.java
new file mode 100644
index 0000000..16fe97e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridPropertyItemProvider.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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridProperty;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleFactory;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropertyItemProvider
+ 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 CxGridPropertyItemProvider(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);
+
+ addDotPathPropertyDescriptor(object);
+ addEditablePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridProperty_dotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridProperty_dotPath_feature", "_UI_CxGridProperty_type"),
+ CxGridSourcePackage.Literals.CX_GRID_PROPERTY__DOT_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_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_CxGridProperty_editable_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridProperty_editable_feature", "_UI_CxGridProperty_type"),
+ CxGridSourcePackage.Literals.CX_GRID_PROPERTY__EDITABLE,
+ 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(CxGridSourcePackage.Literals.CX_GRID_PROPERTY__PATH);
+ childrenFeatures.add(CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE);
+ }
+ 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 CxGridProperty.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridProperty"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridProperty)object).getDotPath();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridProperty_type") :
+ getString("_UI_CxGridProperty_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(CxGridProperty.class)) {
+ case CxGridSourcePackage.CX_GRID_PROPERTY__DOT_PATH:
+ case CxGridSourcePackage.CX_GRID_PROPERTY__EDITABLE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__PATH:
+ case CxGridSourcePackage.CX_GRID_PROPERTY__STYLE:
+ 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
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropHtmlStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropTextStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropButtonStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropProgressbarStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropSparklineStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropBooleanStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropNumberStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropImageStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropIndicatorStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropDateStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropQuantityStyle()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_PROPERTY__STYLE,
+ CxGridStyleFactory.eINSTANCE.createCxGridPropPriceStyle()));
+ }
+
+ /**
+ * 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceEQFilterItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceEQFilterItemProvider.java
new file mode 100644
index 0000000..41ca896
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceEQFilterItemProvider.java
@@ -0,0 +1,209 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.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.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourceEQFilterItemProvider
+ 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 CxGridSourceEQFilterItemProvider(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(CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH);
+ childrenFeatures.add(CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH);
+ }
+ 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 CxGridSourceEQFilter.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridSourceEQFilter"));
+ }
+
+ /**
+ * 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_CxGridSourceEQFilter_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(CxGridSourceEQFilter.class)) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH:
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH:
+ 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
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+ }
+
+ /**
+ * 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 == CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH ||
+ childFeature == CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH;
+
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceEditPlugin.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceEditPlugin.java
new file mode 100644
index 0000000..bc15b53
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceEditPlugin.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.infogrid.model.gridsource.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.xtext.common.types.provider.TypesEditPlugin;
+
+/**
+ * This is the central singleton for the CxGridSource edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class CxGridSourceEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final CxGridSourceEditPlugin INSTANCE = new CxGridSourceEditPlugin();
+
+ /**
+ * 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 CxGridSourceEditPlugin() {
+ super
+ (new ResourceLocator [] {
+ TypesEditPlugin.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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceInputItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceInputItemProvider.java
new file mode 100644
index 0000000..82b7138
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceInputItemProvider.java
@@ -0,0 +1,259 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.xtext.common.types.TypesFactory;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourceInputItemProvider
+ 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 CxGridSourceInputItemProvider(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);
+
+ addInputTypeFQNPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Input Type FQN feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addInputTypeFQNPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridSourceInput_inputTypeFQN_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridSourceInput_inputTypeFQN_feature", "_UI_CxGridSourceInput_type"),
+ CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN,
+ 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(CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE);
+ childrenFeatures.add(CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__FILTERS);
+ }
+ 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 CxGridSourceInput.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridSourceInput"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridSourceInput)object).getInputTypeFQN();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridSourceInput_type") :
+ getString("_UI_CxGridSourceInput_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(CxGridSourceInput.class)) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE:
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS:
+ 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
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmParameterizedTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmGenericArrayTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmWildcardTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmAnyTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmMultiTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmDelegateTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmSynonymTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmUnknownTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__INPUT_TYPE,
+ TypesFactory.eINSTANCE.createJvmInnerTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT__FILTERS,
+ CxGridSourceFactory.eINSTANCE.createCxGridSourceEQFilter()));
+ }
+
+ /**
+ * 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceItemProvider.java
new file mode 100644
index 0000000..3e53db1
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceItemProvider.java
@@ -0,0 +1,362 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.xtext.common.types.TypesFactory;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourceItemProvider
+ 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 CxGridSourceItemProvider(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);
+ addTagsPropertyDescriptor(object);
+ addKindPropertyDescriptor(object);
+ addRootTypeFQNPropertyDescriptor(object);
+ addSelectionEventTopicPropertyDescriptor(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_CxGridSource_id_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridSource_id_feature", "_UI_CxGridSource_type"),
+ CxGridSourcePackage.Literals.CX_GRID_SOURCE__ID,
+ 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_CxGridSource_tags_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridSource_tags_feature", "_UI_CxGridSource_type"),
+ CxGridSourcePackage.Literals.CX_GRID_SOURCE__TAGS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Kind feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addKindPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridSource_kind_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridSource_kind_feature", "_UI_CxGridSource_type"),
+ CxGridSourcePackage.Literals.CX_GRID_SOURCE__KIND,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Root Type FQN feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRootTypeFQNPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridSource_rootTypeFQN_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridSource_rootTypeFQN_feature", "_UI_CxGridSource_type"),
+ CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE_FQN,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Selection Event Topic feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSelectionEventTopicPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridSource_selectionEventTopic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridSource_selectionEventTopic_feature", "_UI_CxGridSource_type"),
+ CxGridSourcePackage.Literals.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC,
+ 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(CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE);
+ childrenFeatures.add(CxGridSourcePackage.Literals.CX_GRID_SOURCE__PROPERTIES);
+ childrenFeatures.add(CxGridSourcePackage.Literals.CX_GRID_SOURCE__INPUTS);
+ }
+ 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 CxGridSource.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridSource"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridSource)object).getId();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridSource_type") :
+ getString("_UI_CxGridSource_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(CxGridSource.class)) {
+ case CxGridSourcePackage.CX_GRID_SOURCE__ID:
+ case CxGridSourcePackage.CX_GRID_SOURCE__TAGS:
+ case CxGridSourcePackage.CX_GRID_SOURCE__KIND:
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE_FQN:
+ case CxGridSourcePackage.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE:
+ case CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES:
+ case CxGridSourcePackage.CX_GRID_SOURCE__INPUTS:
+ 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
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmParameterizedTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmGenericArrayTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmWildcardTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmAnyTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmMultiTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmDelegateTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmSynonymTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmUnknownTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__ROOT_TYPE,
+ TypesFactory.eINSTANCE.createJvmInnerTypeReference()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__PROPERTIES,
+ CxGridSourceFactory.eINSTANCE.createCxGridProperty()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridSourcePackage.Literals.CX_GRID_SOURCE__INPUTS,
+ CxGridSourceFactory.eINSTANCE.createCxGridSourceInput()));
+ }
+
+ /**
+ * 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceItemProviderAdapterFactory.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceItemProviderAdapterFactory.java
new file mode 100644
index 0000000..1f73008
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/provider/CxGridSourceItemProviderAdapterFactory.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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridSourcePackage;
+
+import org.eclipse.osbp.infogrid.model.gridsource.util.CxGridSourceAdapterFactory;
+
+/**
+ * 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 CxGridSourceItemProviderAdapterFactory extends CxGridSourceAdapterFactory 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(CxGridSourceEditPlugin.INSTANCE, CxGridSourcePackage.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 CxGridSourceItemProviderAdapterFactory() {
+ 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.infogrid.model.gridsource.CxGridSource} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceItemProvider cxGridSourceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridSourceAdapter() {
+ if (cxGridSourceItemProvider == null) {
+ cxGridSourceItemProvider = new CxGridSourceItemProvider(this);
+ }
+
+ return cxGridSourceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceInputItemProvider cxGridSourceInputItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridSourceInputAdapter() {
+ if (cxGridSourceInputItemProvider == null) {
+ cxGridSourceInputItemProvider = new CxGridSourceInputItemProvider(this);
+ }
+
+ return cxGridSourceInputItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropertyItemProvider cxGridPropertyItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropertyAdapter() {
+ if (cxGridPropertyItemProvider == null) {
+ cxGridPropertyItemProvider = new CxGridPropertyItemProvider(this);
+ }
+
+ return cxGridPropertyItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridNestedFieldItemProvider cxGridNestedFieldItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridNestedFieldAdapter() {
+ if (cxGridNestedFieldItemProvider == null) {
+ cxGridNestedFieldItemProvider = new CxGridNestedFieldItemProvider(this);
+ }
+
+ return cxGridNestedFieldItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridNestedPathItemProvider cxGridNestedPathItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridNestedPathAdapter() {
+ if (cxGridNestedPathItemProvider == null) {
+ cxGridNestedPathItemProvider = new CxGridNestedPathItemProvider(this);
+ }
+
+ return cxGridNestedPathItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceEQFilterItemProvider cxGridSourceEQFilterItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridSourceEQFilterAdapter() {
+ if (cxGridSourceEQFilterItemProvider == null) {
+ cxGridSourceEQFilterItemProvider = new CxGridSourceEQFilterItemProvider(this);
+ }
+
+ return cxGridSourceEQFilterItemProvider;
+ }
+
+ /**
+ * 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 (cxGridSourceItemProvider != null) cxGridSourceItemProvider.dispose();
+ if (cxGridSourceInputItemProvider != null) cxGridSourceInputItemProvider.dispose();
+ if (cxGridPropertyItemProvider != null) cxGridPropertyItemProvider.dispose();
+ if (cxGridNestedFieldItemProvider != null) cxGridNestedFieldItemProvider.dispose();
+ if (cxGridNestedPathItemProvider != null) cxGridNestedPathItemProvider.dispose();
+ if (cxGridSourceEQFilterItemProvider != null) cxGridSourceEQFilterItemProvider.dispose();
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropBooleanStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropBooleanStyleItemProvider.java
new file mode 100644
index 0000000..c30c756
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropBooleanStyleItemProvider.java
@@ -0,0 +1,104 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropBooleanStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropBooleanStyleItemProvider(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 CxGridPropBooleanStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropBooleanStyle"));
+ }
+
+ /**
+ * 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_CxGridPropBooleanStyle_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);
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropButtonStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropButtonStyleItemProvider.java
new file mode 100644
index 0000000..75e1cf3
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropButtonStyleItemProvider.java
@@ -0,0 +1,130 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropButtonStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropButtonStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropButtonStyleItemProvider(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);
+
+ addEventTopicPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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_CxGridEventTopicAble_eventTopic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridEventTopicAble_eventTopic_feature", "_UI_CxGridEventTopicAble_type"),
+ CxGridStylePackage.Literals.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropButtonStyle)object).getEventTopic();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropButtonStyle_type") :
+ getString("_UI_CxGridPropButtonStyle_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(CxGridPropButtonStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC:
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropDateStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropDateStyleItemProvider.java
new file mode 100644
index 0000000..af91d83
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropDateStyleItemProvider.java
@@ -0,0 +1,142 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropDateStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropDateStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropDateStyleItemProvider(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);
+
+ addDateFormatPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Date Format feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDateFormatPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropDateStyle_dateFormat_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropDateStyle_dateFormat_feature", "_UI_CxGridPropDateStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CxGridPropDateStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropDateStyle"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropDateStyle)object).getDateFormat();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropDateStyle_type") :
+ getString("_UI_CxGridPropDateStyle_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(CxGridPropDateStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT:
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropHtmlStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropHtmlStyleItemProvider.java
new file mode 100644
index 0000000..deb35b2
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropHtmlStyleItemProvider.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.infogrid.model.gridsource.style.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;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropHtmlStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropHtmlStyleItemProvider(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) {
+ return getString("_UI_CxGridPropHtmlStyle_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);
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropImageStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropImageStyleItemProvider.java
new file mode 100644
index 0000000..c427e0c
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropImageStyleItemProvider.java
@@ -0,0 +1,193 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropImageStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropImageStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropImageStyleItemProvider(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);
+
+ addEventTopicPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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_CxGridEventTopicAble_eventTopic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridEventTopicAble_eventTopic_feature", "_UI_CxGridEventTopicAble_type"),
+ CxGridStylePackage.Literals.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC,
+ 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(CxGridStylePackage.Literals.CX_GRID_PROP_IMAGE_STYLE__CONFIGS);
+ }
+ 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 CxGridPropImageStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropImageStyle"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropImageStyle)object).getEventTopic();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropImageStyle_type") :
+ getString("_UI_CxGridPropImageStyle_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(CxGridPropImageStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS:
+ 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
+ (CxGridStylePackage.Literals.CX_GRID_PROP_IMAGE_STYLE__CONFIGS,
+ CxGridStyleFactory.eINSTANCE.createCxGridStyleConfig()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridStylePackage.Literals.CX_GRID_PROP_IMAGE_STYLE__CONFIGS,
+ CxGridStyleFactory.eINSTANCE.createCxGridStyleConfigStringToResource()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridStylePackage.Literals.CX_GRID_PROP_IMAGE_STYLE__CONFIGS,
+ CxGridStyleFactory.eINSTANCE.createCxGridStyleConfigNumericToResource()));
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropIndicatorStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropIndicatorStyleItemProvider.java
new file mode 100644
index 0000000..80fe0e7
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropIndicatorStyleItemProvider.java
@@ -0,0 +1,190 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropIndicatorStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropIndicatorStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropIndicatorStyleItemProvider(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);
+
+ addEventTopicPropertyDescriptor(object);
+ addGreenStartsPropertyDescriptor(object);
+ addRedEndsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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_CxGridEventTopicAble_eventTopic_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridEventTopicAble_eventTopic_feature", "_UI_CxGridEventTopicAble_type"),
+ CxGridStylePackage.Literals.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Green Starts feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGreenStartsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropIndicatorStyle_greenStarts_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropIndicatorStyle_greenStarts_feature", "_UI_CxGridPropIndicatorStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Red Ends feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRedEndsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropIndicatorStyle_redEnds_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropIndicatorStyle_redEnds_feature", "_UI_CxGridPropIndicatorStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CxGridPropIndicatorStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropIndicatorStyle"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropIndicatorStyle)object).getEventTopic();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropIndicatorStyle_type") :
+ getString("_UI_CxGridPropIndicatorStyle_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(CxGridPropIndicatorStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC:
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS:
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS:
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropNumberStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropNumberStyleItemProvider.java
new file mode 100644
index 0000000..71cb496
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropNumberStyleItemProvider.java
@@ -0,0 +1,142 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropNumberStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropNumberStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropNumberStyleItemProvider(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);
+
+ addNumberFormatPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Number Format feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNumberFormatPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropNumberStyle_numberFormat_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropNumberStyle_numberFormat_feature", "_UI_CxGridPropNumberStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CxGridPropNumberStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropNumberStyle"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropNumberStyle)object).getNumberFormat();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropNumberStyle_type") :
+ getString("_UI_CxGridPropNumberStyle_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(CxGridPropNumberStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT:
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropPriceStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropPriceStyleItemProvider.java
new file mode 100644
index 0000000..ba916bf
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropPriceStyleItemProvider.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.CxGridSourceFactory;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropPriceStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropPriceStyleItemProvider(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);
+
+ addValuePropertyDotPathPropertyDescriptor(object);
+ addValueNumberFormatPropertyDescriptor(object);
+ addCurrencyPropertyDotPathPropertyDescriptor(object);
+ addHtmlPatternPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value Property Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropPriceStyle_valuePropertyDotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropPriceStyle_valuePropertyDotPath_feature", "_UI_CxGridPropPriceStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Value Number Format feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValueNumberFormatPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropPriceStyle_valueNumberFormat_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropPriceStyle_valueNumberFormat_feature", "_UI_CxGridPropPriceStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Currency Property Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCurrencyPropertyDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropPriceStyle_currencyPropertyDotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropPriceStyle_currencyPropertyDotPath_feature", "_UI_CxGridPropPriceStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Html Pattern feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addHtmlPatternPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropPriceStyle_htmlPattern_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropPriceStyle_htmlPattern_feature", "_UI_CxGridPropPriceStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN,
+ 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(CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH);
+ childrenFeatures.add(CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH);
+ }
+ 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 CxGridPropPriceStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropPriceStyle"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropPriceStyle)object).getValuePropertyDotPath();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropPriceStyle_type") :
+ getString("_UI_CxGridPropPriceStyle_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(CxGridPropPriceStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH:
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT:
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH:
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH:
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH:
+ 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
+ (CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+ }
+
+ /**
+ * 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 == CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH ||
+ childFeature == CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH;
+
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropProgressbarStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropProgressbarStyleItemProvider.java
new file mode 100644
index 0000000..34da463
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropProgressbarStyleItemProvider.java
@@ -0,0 +1,128 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropProgressbarStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropProgressbarStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropProgressbarStyleItemProvider(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);
+
+ addMaxValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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_CxGridPropProgressbarStyle_maxValue_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropProgressbarStyle_maxValue_feature", "_UI_CxGridPropProgressbarStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ CxGridPropProgressbarStyle cxGridPropProgressbarStyle = (CxGridPropProgressbarStyle)object;
+ return getString("_UI_CxGridPropProgressbarStyle_type") + " " + cxGridPropProgressbarStyle.getMaxValue();
+ }
+
+
+ /**
+ * 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(CxGridPropProgressbarStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_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);
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropQuantityStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropQuantityStyleItemProvider.java
new file mode 100644
index 0000000..4b6b2d5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropQuantityStyleItemProvider.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.CxGridSourceFactory;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropQuantityStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropQuantityStyleItemProvider(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);
+
+ addValuePropertyDotPathPropertyDescriptor(object);
+ addValueNumberFormatPropertyDescriptor(object);
+ addUomPropertyDotPathPropertyDescriptor(object);
+ addHtmlPatternPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value Property Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropQuantityStyle_valuePropertyDotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropQuantityStyle_valuePropertyDotPath_feature", "_UI_CxGridPropQuantityStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Value Number Format feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValueNumberFormatPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropQuantityStyle_valueNumberFormat_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropQuantityStyle_valueNumberFormat_feature", "_UI_CxGridPropQuantityStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Uom Property Dot Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUomPropertyDotPathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropQuantityStyle_uomPropertyDotPath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropQuantityStyle_uomPropertyDotPath_feature", "_UI_CxGridPropQuantityStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Html Pattern feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addHtmlPatternPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridPropQuantityStyle_htmlPattern_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridPropQuantityStyle_htmlPattern_feature", "_UI_CxGridPropQuantityStyle_type"),
+ CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN,
+ 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(CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH);
+ childrenFeatures.add(CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH);
+ }
+ 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 CxGridPropQuantityStyle.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridPropQuantityStyle"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridPropQuantityStyle)object).getValuePropertyDotPath();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridPropQuantityStyle_type") :
+ getString("_UI_CxGridPropQuantityStyle_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(CxGridPropQuantityStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH:
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT:
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH:
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH:
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH:
+ 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
+ (CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+ }
+
+ /**
+ * 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 == CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH ||
+ childFeature == CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH;
+
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropSparklineStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropSparklineStyleItemProvider.java
new file mode 100644
index 0000000..af1c025
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropSparklineStyleItemProvider.java
@@ -0,0 +1,139 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropSparklineStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropSparklineStyleItemProvider(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(CxGridStylePackage.Literals.CX_GRID_PROP_SPARKLINE_STYLE__FIELD);
+ }
+ 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) {
+ return getString("_UI_CxGridPropSparklineStyle_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(CxGridPropSparklineStyle.class)) {
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD:
+ 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
+ (CxGridStylePackage.Literals.CX_GRID_PROP_SPARKLINE_STYLE__FIELD,
+ CxGridSourceFactory.eINSTANCE.createCxGridNestedField()));
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropStyleItemProvider.java
new file mode 100644
index 0000000..b6ce795
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropStyleItemProvider.java
@@ -0,0 +1,120 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.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.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropStyleItemProvider
+ 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 CxGridPropStyleItemProvider(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) {
+ return getString("_UI_CxGridPropStyle_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);
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropTextStyleItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropTextStyleItemProvider.java
new file mode 100644
index 0000000..b69461f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridPropTextStyleItemProvider.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.infogrid.model.gridsource.style.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;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridPropTextStyleItemProvider extends CxGridPropStyleItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropTextStyleItemProvider(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) {
+ return getString("_UI_CxGridPropTextStyle_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);
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigItemProvider.java
new file mode 100644
index 0000000..602db56
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigItemProvider.java
@@ -0,0 +1,131 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.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.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleConfigItemProvider
+ 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 CxGridStyleConfigItemProvider(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 CxGridStyleConfig.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridStyleConfig"));
+ }
+
+ /**
+ * 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_CxGridStyleConfig_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);
+ 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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigNumericToResourceItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigNumericToResourceItemProvider.java
new file mode 100644
index 0000000..f29fd39
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigNumericToResourceItemProvider.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleConfigNumericToResourceItemProvider extends CxGridStyleConfigItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleConfigNumericToResourceItemProvider(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);
+
+ addValuePropertyDescriptor(object);
+ addComparePropertyDescriptor(object);
+ addResourceThemePathPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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_CxGridStyleConfigNumericToResource_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridStyleConfigNumericToResource_value_feature", "_UI_CxGridStyleConfigNumericToResource_type"),
+ CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Compare feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addComparePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridStyleConfigNumericToResource_compare_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridStyleConfigNumericToResource_compare_feature", "_UI_CxGridStyleConfigNumericToResource_type"),
+ CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Resource Theme Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addResourceThemePathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridStyleConfigNumericToResource_resourceThemePath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridStyleConfigNumericToResource_resourceThemePath_feature", "_UI_CxGridStyleConfigNumericToResource_type"),
+ CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CxGridStyleConfigNumericToResource.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridStyleConfigNumericToResource"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ CxGridStyleConfigNumericToResource cxGridStyleConfigNumericToResource = (CxGridStyleConfigNumericToResource)object;
+ return getString("_UI_CxGridStyleConfigNumericToResource_type") + " " + cxGridStyleConfigNumericToResource.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(CxGridStyleConfigNumericToResource.class)) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE:
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE:
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigStringToResourceItemProvider.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigStringToResourceItemProvider.java
new file mode 100644
index 0000000..1dcd05e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleConfigStringToResourceItemProvider.java
@@ -0,0 +1,190 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleConfigStringToResourceItemProvider extends CxGridStyleConfigItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleConfigStringToResourceItemProvider(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);
+
+ addValuePropertyDescriptor(object);
+ addComparePropertyDescriptor(object);
+ addResourceThemePathPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * 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_CxGridStyleConfigStringToResource_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridStyleConfigStringToResource_value_feature", "_UI_CxGridStyleConfigStringToResource_type"),
+ CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Compare feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addComparePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridStyleConfigStringToResource_compare_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridStyleConfigStringToResource_compare_feature", "_UI_CxGridStyleConfigStringToResource_type"),
+ CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Resource Theme Path feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addResourceThemePathPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CxGridStyleConfigStringToResource_resourceThemePath_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CxGridStyleConfigStringToResource_resourceThemePath_feature", "_UI_CxGridStyleConfigStringToResource_type"),
+ CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CxGridStyleConfigStringToResource.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CxGridStyleConfigStringToResource"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CxGridStyleConfigStringToResource)object).getValue();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CxGridStyleConfigStringToResource_type") :
+ getString("_UI_CxGridStyleConfigStringToResource_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(CxGridStyleConfigStringToResource.class)) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE:
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE:
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_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.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleItemProviderAdapterFactory.java b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleItemProviderAdapterFactory.java
new file mode 100644
index 0000000..357beab
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.edit/src/org/eclipse/osbp/infogrid/model/gridsource/style/provider/CxGridStyleItemProviderAdapterFactory.java
@@ -0,0 +1,591 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.provider.CxGridSourceEditPlugin;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.util.CxGridStyleAdapterFactory;
+
+/**
+ * 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 CxGridStyleItemProviderAdapterFactory extends CxGridStyleAdapterFactory 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(CxGridSourceEditPlugin.INSTANCE, CxGridStylePackage.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 CxGridStyleItemProviderAdapterFactory() {
+ 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.infogrid.model.gridsource.style.CxGridPropHtmlStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropHtmlStyleItemProvider cxGridPropHtmlStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropHtmlStyleAdapter() {
+ if (cxGridPropHtmlStyleItemProvider == null) {
+ cxGridPropHtmlStyleItemProvider = new CxGridPropHtmlStyleItemProvider(this);
+ }
+
+ return cxGridPropHtmlStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropTextStyleItemProvider cxGridPropTextStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropTextStyleAdapter() {
+ if (cxGridPropTextStyleItemProvider == null) {
+ cxGridPropTextStyleItemProvider = new CxGridPropTextStyleItemProvider(this);
+ }
+
+ return cxGridPropTextStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropButtonStyleItemProvider cxGridPropButtonStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropButtonStyleAdapter() {
+ if (cxGridPropButtonStyleItemProvider == null) {
+ cxGridPropButtonStyleItemProvider = new CxGridPropButtonStyleItemProvider(this);
+ }
+
+ return cxGridPropButtonStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropProgressbarStyleItemProvider cxGridPropProgressbarStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropProgressbarStyleAdapter() {
+ if (cxGridPropProgressbarStyleItemProvider == null) {
+ cxGridPropProgressbarStyleItemProvider = new CxGridPropProgressbarStyleItemProvider(this);
+ }
+
+ return cxGridPropProgressbarStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropSparklineStyleItemProvider cxGridPropSparklineStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropSparklineStyleAdapter() {
+ if (cxGridPropSparklineStyleItemProvider == null) {
+ cxGridPropSparklineStyleItemProvider = new CxGridPropSparklineStyleItemProvider(this);
+ }
+
+ return cxGridPropSparklineStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropBooleanStyleItemProvider cxGridPropBooleanStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropBooleanStyleAdapter() {
+ if (cxGridPropBooleanStyleItemProvider == null) {
+ cxGridPropBooleanStyleItemProvider = new CxGridPropBooleanStyleItemProvider(this);
+ }
+
+ return cxGridPropBooleanStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropNumberStyleItemProvider cxGridPropNumberStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropNumberStyleAdapter() {
+ if (cxGridPropNumberStyleItemProvider == null) {
+ cxGridPropNumberStyleItemProvider = new CxGridPropNumberStyleItemProvider(this);
+ }
+
+ return cxGridPropNumberStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropImageStyleItemProvider cxGridPropImageStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropImageStyleAdapter() {
+ if (cxGridPropImageStyleItemProvider == null) {
+ cxGridPropImageStyleItemProvider = new CxGridPropImageStyleItemProvider(this);
+ }
+
+ return cxGridPropImageStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropIndicatorStyleItemProvider cxGridPropIndicatorStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropIndicatorStyleAdapter() {
+ if (cxGridPropIndicatorStyleItemProvider == null) {
+ cxGridPropIndicatorStyleItemProvider = new CxGridPropIndicatorStyleItemProvider(this);
+ }
+
+ return cxGridPropIndicatorStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropDateStyleItemProvider cxGridPropDateStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropDateStyleAdapter() {
+ if (cxGridPropDateStyleItemProvider == null) {
+ cxGridPropDateStyleItemProvider = new CxGridPropDateStyleItemProvider(this);
+ }
+
+ return cxGridPropDateStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleConfigItemProvider cxGridStyleConfigItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridStyleConfigAdapter() {
+ if (cxGridStyleConfigItemProvider == null) {
+ cxGridStyleConfigItemProvider = new CxGridStyleConfigItemProvider(this);
+ }
+
+ return cxGridStyleConfigItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleConfigStringToResourceItemProvider cxGridStyleConfigStringToResourceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridStyleConfigStringToResourceAdapter() {
+ if (cxGridStyleConfigStringToResourceItemProvider == null) {
+ cxGridStyleConfigStringToResourceItemProvider = new CxGridStyleConfigStringToResourceItemProvider(this);
+ }
+
+ return cxGridStyleConfigStringToResourceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleConfigNumericToResourceItemProvider cxGridStyleConfigNumericToResourceItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridStyleConfigNumericToResourceAdapter() {
+ if (cxGridStyleConfigNumericToResourceItemProvider == null) {
+ cxGridStyleConfigNumericToResourceItemProvider = new CxGridStyleConfigNumericToResourceItemProvider(this);
+ }
+
+ return cxGridStyleConfigNumericToResourceItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropQuantityStyleItemProvider cxGridPropQuantityStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropQuantityStyleAdapter() {
+ if (cxGridPropQuantityStyleItemProvider == null) {
+ cxGridPropQuantityStyleItemProvider = new CxGridPropQuantityStyleItemProvider(this);
+ }
+
+ return cxGridPropQuantityStyleItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropPriceStyleItemProvider cxGridPropPriceStyleItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCxGridPropPriceStyleAdapter() {
+ if (cxGridPropPriceStyleItemProvider == null) {
+ cxGridPropPriceStyleItemProvider = new CxGridPropPriceStyleItemProvider(this);
+ }
+
+ return cxGridPropPriceStyleItemProvider;
+ }
+
+ /**
+ * 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 (cxGridPropHtmlStyleItemProvider != null) cxGridPropHtmlStyleItemProvider.dispose();
+ if (cxGridPropTextStyleItemProvider != null) cxGridPropTextStyleItemProvider.dispose();
+ if (cxGridPropButtonStyleItemProvider != null) cxGridPropButtonStyleItemProvider.dispose();
+ if (cxGridPropProgressbarStyleItemProvider != null) cxGridPropProgressbarStyleItemProvider.dispose();
+ if (cxGridPropSparklineStyleItemProvider != null) cxGridPropSparklineStyleItemProvider.dispose();
+ if (cxGridPropBooleanStyleItemProvider != null) cxGridPropBooleanStyleItemProvider.dispose();
+ if (cxGridPropNumberStyleItemProvider != null) cxGridPropNumberStyleItemProvider.dispose();
+ if (cxGridPropImageStyleItemProvider != null) cxGridPropImageStyleItemProvider.dispose();
+ if (cxGridPropIndicatorStyleItemProvider != null) cxGridPropIndicatorStyleItemProvider.dispose();
+ if (cxGridPropDateStyleItemProvider != null) cxGridPropDateStyleItemProvider.dispose();
+ if (cxGridStyleConfigItemProvider != null) cxGridStyleConfigItemProvider.dispose();
+ if (cxGridStyleConfigStringToResourceItemProvider != null) cxGridStyleConfigStringToResourceItemProvider.dispose();
+ if (cxGridStyleConfigNumericToResourceItemProvider != null) cxGridStyleConfigNumericToResourceItemProvider.dispose();
+ if (cxGridPropQuantityStyleItemProvider != null) cxGridPropQuantityStyleItemProvider.dispose();
+ if (cxGridPropPriceStyleItemProvider != null) cxGridPropPriceStyleItemProvider.dispose();
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.model.editor/.project b/org.eclipse.osbp.infogrid.model.editor/.project
new file mode 100644
index 0000000..d009f47
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.model.editor</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.infogrid.model.editor/LICENSE.txt b/org.eclipse.osbp.infogrid.model.editor/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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.infogrid.model.editor/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.model.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..006fcbf
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.model.editor
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.model.editor;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceEditorPlugin$Implementation
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.infogrid.model.gridsource.presentation;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.style.presentation;version="0.9.0"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.osbp.infogrid.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,
+ org.eclipse.xtext.common.types.edit;bundle-version="[2.7.3,2.8.0)";visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.infogrid.model.editor/about.html b/org.eclipse.osbp.infogrid.model.editor/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.model.editor/about.ini b/org.eclipse.osbp.infogrid.model.editor/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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.infogrid.model.editor/about.mappings b/org.eclipse.osbp.infogrid.model.editor/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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.infogrid.model.editor/about.properties b/org.eclipse.osbp.infogrid.model.editor/about.properties
new file mode 100644
index 0000000..4726b3b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.model.editor
+
+################ 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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.model.editor/build.properties b/org.eclipse.osbp.infogrid.model.editor/build.properties
new file mode 100644
index 0000000..fb59c0d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/build.properties
@@ -0,0 +1,17 @@
+#
+
+bin.includes = about.properties, about.mappings, about.ini, about.html, .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+jars.compile.order = .
+source.. = src/
+output.. = target/classes
+src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt,\
+ epl-v10.html,\
+ license.html,\
+ icons/
diff --git a/org.eclipse.osbp.infogrid.model.editor/epl-v10.html b/org.eclipse.osbp.infogrid.model.editor/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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.infogrid.model.editor/icons/full/obj16/CxGridSourceModelFile.gif b/org.eclipse.osbp.infogrid.model.editor/icons/full/obj16/CxGridSourceModelFile.gif
new file mode 100644
index 0000000..44d6ebc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/icons/full/obj16/CxGridSourceModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.editor/icons/full/obj16/CxGridStyleModelFile.gif b/org.eclipse.osbp.infogrid.model.editor/icons/full/obj16/CxGridStyleModelFile.gif
new file mode 100644
index 0000000..557e65e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/icons/full/obj16/CxGridStyleModelFile.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.editor/icons/full/wizban/NewCxGridSource.gif b/org.eclipse.osbp.infogrid.model.editor/icons/full/wizban/NewCxGridSource.gif
new file mode 100644
index 0000000..f5b28f1
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/icons/full/wizban/NewCxGridSource.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.editor/icons/full/wizban/NewCxGridStyle.gif b/org.eclipse.osbp.infogrid.model.editor/icons/full/wizban/NewCxGridStyle.gif
new file mode 100644
index 0000000..7158177
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/icons/full/wizban/NewCxGridStyle.gif
Binary files differ
diff --git a/org.eclipse.osbp.infogrid.model.editor/license.html b/org.eclipse.osbp.infogrid.model.editor/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/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™ 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.infogrid.model.editor/plugin.properties b/org.eclipse.osbp.infogrid.model.editor/plugin.properties
new file mode 100644
index 0000000..f9b96b2
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/plugin.properties
@@ -0,0 +1,62 @@
+#
+
+pluginName = CxGridSource Editor
+providerName = www.example.org
+
+_UI_CxGridSourceEditor_menu = &CxGridSource Editor
+_UI_CxGridStyleEditor_menu = &CxGridStyle 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_CxGridSourceModelWizard_label = CxGridSource Model
+_UI_CxGridSourceModelWizard_description = Create a new CxGridSource model
+
+_UI_CxGridSourceEditor_label = CxGridSource Model Editor
+
+_UI_CxGridSourceEditorFilenameDefaultBase = My
+_UI_CxGridSourceEditorFilenameExtensions = cxgridsource
+
+_UI_CxGridStyleModelWizard_label = CxGridStyle Model
+_UI_CxGridStyleModelWizard_description = Create a new CxGridStyle model
+
+_UI_CxGridStyleEditor_label = CxGridStyle Model Editor
+
+_UI_CxGridStyleEditorFilenameDefaultBase = My
+_UI_CxGridStyleEditorFilenameExtensions = cxgridstyle
+
+_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.infogrid.model.editor/plugin.xml b/org.eclipse.osbp.infogrid.model.editor/plugin.xml
new file mode 100644
index 0000000..f1e4f66
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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 gridsource -->
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceModelWizardID"
+ name="%_UI_CxGridSourceModelWizard_label"
+ class="org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/CxGridSourceModelFile.gif">
+ <description>%_UI_CxGridSourceModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated gridsource -->
+ <editor
+ id="org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceEditorID"
+ name="%_UI_CxGridSourceEditor_label"
+ icon="icons/full/obj16/CxGridSourceModelFile.gif"
+ extensions="cxgridsource"
+ class="org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceEditor"
+ contributorClass="org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceActionBarContributor">
+ </editor>
+ </extension>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <!-- @generated gridsource -->
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.osbp.infogrid.model.gridsource.style.presentation.CxGridStyleModelWizardID"
+ name="%_UI_CxGridStyleModelWizard_label"
+ class="org.eclipse.osbp.infogrid.model.gridsource.style.presentation.CxGridStyleModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/CxGridStyleModelFile.gif">
+ <description>%_UI_CxGridStyleModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated gridsource -->
+ <editor
+ id="org.eclipse.osbp.infogrid.model.gridsource.style.presentation.CxGridStyleEditorID"
+ name="%_UI_CxGridStyleEditor_label"
+ icon="icons/full/obj16/CxGridStyleModelFile.gif"
+ extensions="cxgridstyle"
+ class="org.eclipse.osbp.infogrid.model.gridsource.style.presentation.CxGridStyleEditor"
+ contributorClass="org.eclipse.osbp.infogrid.model.gridsource.style.presentation.CxGridStyleActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.infogrid.model.editor/pom.xml b/org.eclipse.osbp.infogrid.model.editor/pom.xml
new file mode 100644
index 0000000..6120093
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.model.editor</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceActionBarContributor.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceActionBarContributor.java
new file mode 100644
index 0000000..d1f9fa5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceActionBarContributor.java
@@ -0,0 +1,433 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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 CxGridSource model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourceActionBarContributor
+ 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.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 CxGridSourceActionBarContributor() {
+ 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("cxgridsource-settings"));
+ toolBarManager.add(new Separator("cxgridsource-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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceEditor_menu"), "org.eclipse.osbp.infogrid.model.gridsourceMenuID");
+ 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(CxGridSourceEditorPlugin.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.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceEditor.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceEditor.java
new file mode 100644
index 0000000..9edea8b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceEditor.java
@@ -0,0 +1,1834 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.provider.CxGridSourceItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.xtext.common.types.provider.TypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.provider.CxGridStyleItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a CxGridSource model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourceEditor
+ 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(CxGridSourceEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(CxGridSourceEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == CxGridSourceEditor.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(CxGridSourceEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == CxGridSourceEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ CxGridSourceEditorPlugin.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(CxGridSourceEditor.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.infogrid.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) {
+ CxGridSourceEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ CxGridSourceEditorPlugin.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 CxGridSourceEditor() {
+ 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 CxGridSourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new CxGridStyleItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new TypesItemProviderAdapterFactory());
+ 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.infogrid.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.infogrid.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(), CxGridSourceEditor.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(), CxGridSourceEditor.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(), CxGridSourceEditor.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(), CxGridSourceEditor.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(), CxGridSourceEditor.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(), CxGridSourceEditor.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) {
+ CxGridSourceEditor.this.setSelectionToViewer(selection);
+ CxGridSourceEditor.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.
+ //
+ CxGridSourceEditorPlugin.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 CxGridSourceEditorPlugin.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 CxGridSourceEditorPlugin.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.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceEditorPlugin.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceEditorPlugin.java
new file mode 100644
index 0000000..0addad9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceEditorPlugin.java
@@ -0,0 +1,104 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.xtext.common.types.provider.TypesEditPlugin;
+
+/**
+ * This is the central singleton for the CxGridSource editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class CxGridSourceEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final CxGridSourceEditorPlugin INSTANCE = new CxGridSourceEditorPlugin();
+
+ /**
+ * 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 CxGridSourceEditorPlugin() {
+ super
+ (new ResourceLocator [] {
+ TypesEditPlugin.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.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceModelWizard.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceModelWizard.java
new file mode 100644
index 0000000..d5ed28e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/presentation/CxGridSourceModelWizard.java
@@ -0,0 +1,637 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.provider.CxGridSourceEditPlugin;
+
+
+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 CxGridSourceModelWizard 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceEditorFilenameExtensions").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 =
+ CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourcePackage cxGridSourcePackage = CxGridSourcePackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceFactory cxGridSourceFactory = cxGridSourcePackage.getCxGridSourceFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceModelWizardInitialObjectCreationPage 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(CxGridSourceEditorPlugin.INSTANCE.getImage("full/wizban/NewCxGridSource")));
+ }
+
+ /**
+ * 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 : cxGridSourcePackage.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)cxGridSourcePackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = cxGridSourceFactory.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) {
+ CxGridSourceEditorPlugin.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(), CxGridSourceEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ CxGridSourceEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class CxGridSourceModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceModelWizardNewFileCreationPage(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(CxGridSourceEditorPlugin.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 CxGridSourceModelWizardInitialObjectCreationPage 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 CxGridSourceModelWizardInitialObjectCreationPage(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(CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.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 CxGridSourceEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.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 CxGridSourceModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceModelWizard_label"));
+ newFileCreationPage.setDescription(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceModelWizard_description"));
+ newFileCreationPage.setFileName(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceEditorFilenameDefaultBase") + "." + 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 = CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceEditorFilenameDefaultBase");
+ 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 CxGridSourceModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridSourceModelWizard_label"));
+ initialObjectCreationPage.setDescription(CxGridSourceEditorPlugin.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.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleActionBarContributor.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleActionBarContributor.java
new file mode 100644
index 0000000..24b7e12
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleActionBarContributor.java
@@ -0,0 +1,435 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.presentation.CxGridSourceEditorPlugin;
+
+/**
+ * This is the action bar contributor for the CxGridStyle model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleActionBarContributor
+ 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.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 CxGridStyleActionBarContributor() {
+ 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("cxgridstyle-settings"));
+ toolBarManager.add(new Separator("cxgridstyle-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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleEditor_menu"), "org.eclipse.osbp.infogrid.model.gridsource.styleMenuID");
+ 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(CxGridSourceEditorPlugin.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.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleEditor.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleEditor.java
new file mode 100644
index 0000000..f3323f5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleEditor.java
@@ -0,0 +1,1836 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.provider.CxGridStyleItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.xtext.common.types.provider.TypesItemProviderAdapterFactory;
+
+import org.eclipse.osbp.infogrid.model.gridsource.presentation.CxGridSourceEditorPlugin;
+
+import org.eclipse.osbp.infogrid.model.gridsource.provider.CxGridSourceItemProviderAdapterFactory;
+
+
+/**
+ * This is an example of a CxGridStyle model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleEditor
+ 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(CxGridStyleEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(CxGridStyleEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == CxGridStyleEditor.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(CxGridStyleEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == CxGridStyleEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ CxGridSourceEditorPlugin.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(CxGridStyleEditor.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.infogrid.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) {
+ CxGridSourceEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ CxGridSourceEditorPlugin.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 CxGridStyleEditor() {
+ 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 CxGridSourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new CxGridStyleItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new TypesItemProviderAdapterFactory());
+ 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.infogrid.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.infogrid.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(), CxGridStyleEditor.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(), CxGridStyleEditor.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(), CxGridStyleEditor.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(), CxGridStyleEditor.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(), CxGridStyleEditor.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(), CxGridStyleEditor.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) {
+ CxGridStyleEditor.this.setSelectionToViewer(selection);
+ CxGridStyleEditor.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.
+ //
+ CxGridSourceEditorPlugin.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 CxGridSourceEditorPlugin.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 CxGridSourceEditorPlugin.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.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleModelWizard.java b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleModelWizard.java
new file mode 100644
index 0000000..991b342
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model.editor/src/org/eclipse/osbp/infogrid/model/gridsource/style/presentation/CxGridStyleModelWizard.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridStyleFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.provider.CxGridSourceEditPlugin;
+
+
+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.infogrid.model.gridsource.presentation.CxGridSourceEditorPlugin;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleModelWizard 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleEditorFilenameExtensions").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 =
+ CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStylePackage cxGridStylePackage = CxGridStylePackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleFactory cxGridStyleFactory = cxGridStylePackage.getCxGridStyleFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleModelWizardInitialObjectCreationPage 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(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(CxGridSourceEditorPlugin.INSTANCE.getImage("full/wizban/NewCxGridStyle")));
+ }
+
+ /**
+ * 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 : cxGridStylePackage.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)cxGridStylePackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = cxGridStyleFactory.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) {
+ CxGridSourceEditorPlugin.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(), CxGridSourceEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ CxGridSourceEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class CxGridStyleModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleModelWizardNewFileCreationPage(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(CxGridSourceEditorPlugin.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 CxGridStyleModelWizardInitialObjectCreationPage 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 CxGridStyleModelWizardInitialObjectCreationPage(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(CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.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 CxGridSourceEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ CxGridSourceEditorPlugin.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(CxGridSourceEditorPlugin.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 CxGridStyleModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleModelWizard_label"));
+ newFileCreationPage.setDescription(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleModelWizard_description"));
+ newFileCreationPage.setFileName(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleEditorFilenameDefaultBase") + "." + 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 = CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleEditorFilenameDefaultBase");
+ 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 CxGridStyleModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(CxGridSourceEditorPlugin.INSTANCE.getString("_UI_CxGridStyleModelWizard_label"));
+ initialObjectCreationPage.setDescription(CxGridSourceEditorPlugin.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.infogrid.model/.project b/org.eclipse.osbp.infogrid.model/.project
new file mode 100644
index 0000000..2bec796
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.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.infogrid.model/LICENSE.txt b/org.eclipse.osbp.infogrid.model/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.model/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.model/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..6abff4f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.model
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.model;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;bundle-version="2.10.2";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.xtext.common.types;bundle-version="[2.7.3,2.8.0)";visibility:=reexport,
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtend.lib,
+ org.eclipse.xtend.lib.macro
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.infogrid.model.gridsource;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.impl;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.style;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.style.impl;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.style.util;version="0.9.0",
+ org.eclipse.osbp.infogrid.model.gridsource.util;version="0.9.0"
+
diff --git a/org.eclipse.osbp.infogrid.model/about.html b/org.eclipse.osbp.infogrid.model/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.model/about.ini b/org.eclipse.osbp.infogrid.model/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.model/about.mappings b/org.eclipse.osbp.infogrid.model/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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.infogrid.model/about.properties b/org.eclipse.osbp.infogrid.model/about.properties
new file mode 100644
index 0000000..c668249
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.model/build.properties b/org.eclipse.osbp.infogrid.model/build.properties
new file mode 100644
index 0000000..271d206
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/build.properties
@@ -0,0 +1,17 @@
+#
+
+bin.includes = about.properties, about.mappings, about.ini, about.html, .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+jars.compile.order = .
+source.. = src/,\
+ xtend-gen/
+output.. = target/classes/
+src.includes = about.properties, about.mappings, about.ini, about.html, LICENSE.txt,\
+ epl-v10.html,\
+ license.html
diff --git a/org.eclipse.osbp.infogrid.model/epl-v10.html b/org.eclipse.osbp.infogrid.model/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/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.infogrid.model/license.html b/org.eclipse.osbp.infogrid.model/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.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™ 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.infogrid.model/model/gridsource.ecore b/org.eclipse.osbp.infogrid.model/model/gridsource.ecore
new file mode 100644
index 0000000..cb02d21
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/model/gridsource.ecore
@@ -0,0 +1,131 @@
+<?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="gridsource" nsURI="http://osbp.eclipse.org/gridsource/v1/core"
+ nsPrefix="gridsource">
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridSource">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tags" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="ecview"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rootType" eType="ecore:EClass ../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rootTypeFQN" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="#//CxGridProperty" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputs" upperBound="-1"
+ eType="#//CxGridSourceInput" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionEventTopic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridSourceInput">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputType" eType="ecore:EClass ../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputTypeFQN" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="filters" upperBound="-1"
+ eType="#//CxGridSourceEQFilter" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridProperty">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="style" eType="#//style/CxGridPropStyle"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridNestedField">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="ecore:EClass ../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmOperation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//CxGridNestedPath"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridNestedPath">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="ecore:EClass ../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmOperation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//CxGridNestedPath"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridSourceEQFilter">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputTypePropertyPath"
+ eType="#//CxGridNestedField" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rootTypePropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ </eClassifiers>
+ <eSubpackages name="style" nsURI="http://osbp.eclipse.org/gridsource/v1/core/style"
+ nsPrefix="style">
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropStyle" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropHtmlStyle" eSuperTypes="#//style/CxGridPropStyle"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropTextStyle" eSuperTypes="#//style/CxGridPropStyle"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropButtonStyle" eSuperTypes="#//style/CxGridPropStyle #//style/CxGridEventTopicAble"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropProgressbarStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropSparklineStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="#//CxGridNestedField"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropBooleanStyle" eSuperTypes="#//style/CxGridPropStyle"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropNumberStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropImageStyle" eSuperTypes="#//style/CxGridPropStyle #//style/CxGridEventTopicAble">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configs" upperBound="-1"
+ eType="#//style/CxGridStyleConfig" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropIndicatorStyle" eSuperTypes="#//style/CxGridPropStyle #//style/CxGridEventTopicAble">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="greenStarts" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="redEnds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropDateStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dateFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridStyleConfig"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridStyleConfigStringToResource"
+ eSuperTypes="#//style/CxGridStyleConfig">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="compare" eType="#//style/CxGridCompare"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceThemePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridStyleConfigNumericToResource"
+ eSuperTypes="#//style/CxGridStyleConfig">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="compare" eType="#//style/CxGridCompare"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceThemePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CxGridCompare">
+ <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="CxGridEventTopicAble" abstract="true"
+ interface="true" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventTopic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropQuantityStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="valuePropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valuePropertyDotPath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueNumberFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uomPropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uomPropertyDotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="htmlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="<b>{@value}</b> - <i>{@uom}</i>"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropPriceStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="valuePropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valuePropertyDotPath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueNumberFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="currencyPropertyPath"
+ eType="#//CxGridNestedField" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="currencyPropertyDotPath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="htmlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="<b>{@value}</b> - <i>{@currency}</i>"/>
+ </eClassifiers>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.infogrid.model/model/gridsource.genmodel b/org.eclipse.osbp.infogrid.model/model/gridsource.genmodel
new file mode 100644
index 0000000..ee53f3a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/model/gridsource.genmodel
@@ -0,0 +1,112 @@
+<?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.infogrid.model/src" modelPluginID="org.eclipse.osbp.infogrid.model"
+ modelName="CxGridSource" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel#//types"
+ importOrganizing="true">
+ <foreignModel>gridsource.ecore</foreignModel>
+ <genPackages prefix="CxGridSource" basePackage="org.eclipse.osbp.infogrid.model"
+ disposableProviderFactory="true" loadInitialization="true" extensibleProviderFactory="true"
+ childCreationExtenders="true" ecorePackage="gridsource.ecore#/">
+ <genClasses ecoreClass="gridsource.ecore#//CxGridSource">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridSource/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridSource/tags"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridSource/kind"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSource/rootType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridSource/rootTypeFQN"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSource/properties"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSource/inputs"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridSource/selectionEventTopic"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//CxGridSourceInput">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSourceInput/inputType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridSourceInput/inputTypeFQN"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSourceInput/filters"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//CxGridProperty">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridProperty/path"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridProperty/style"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridProperty/dotPath"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//CxGridNestedField">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridNestedField/field"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridNestedField/path"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridNestedField/dotPath"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//CxGridNestedPath">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridNestedPath/field"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridNestedPath/path"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//CxGridNestedPath/dotPath"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//CxGridSourceEQFilter">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSourceEQFilter/inputTypePropertyPath"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//CxGridSourceEQFilter/rootTypePropertyPath"/>
+ </genClasses>
+ <nestedGenPackages prefix="CxGridStyle" disposableProviderFactory="true" extensibleProviderFactory="true"
+ childCreationExtenders="true" ecorePackage="gridsource.ecore#//style">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="gridsource.ecore#//style/CxGridCompare">
+ <genEnumLiterals ecoreEnumLiteral="gridsource.ecore#//style/CxGridCompare/Equal"/>
+ <genEnumLiterals ecoreEnumLiteral="gridsource.ecore#//style/CxGridCompare/GreaterThan"/>
+ <genEnumLiterals ecoreEnumLiteral="gridsource.ecore#//style/CxGridCompare/GreaterEqual"/>
+ <genEnumLiterals ecoreEnumLiteral="gridsource.ecore#//style/CxGridCompare/LowerThan"/>
+ <genEnumLiterals ecoreEnumLiteral="gridsource.ecore#//style/CxGridCompare/LowerEqual"/>
+ <genEnumLiterals ecoreEnumLiteral="gridsource.ecore#//style/CxGridCompare/NotEqual"/>
+ </genEnums>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridPropStyle"/>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridPropHtmlStyle"/>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridPropTextStyle"/>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridPropButtonStyle"/>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridPropProgressbarStyle">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropProgressbarStyle/maxValue"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridPropSparklineStyle">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//style/CxGridPropSparklineStyle/field"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropBooleanStyle"/>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropNumberStyle">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropNumberStyle/numberFormat"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropImageStyle">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//style/CxGridPropImageStyle/configs"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropIndicatorStyle">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropIndicatorStyle/greenStarts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropIndicatorStyle/redEnds"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropDateStyle">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropDateStyle/dateFormat"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridStyleConfig"/>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridStyleConfigStringToResource">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridStyleConfigStringToResource/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridStyleConfigStringToResource/compare"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridStyleConfigStringToResource/resourceThemePath"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridStyleConfigNumericToResource">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridStyleConfigNumericToResource/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridStyleConfigNumericToResource/compare"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridStyleConfigNumericToResource/resourceThemePath"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="gridsource.ecore#//style/CxGridEventTopicAble">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridEventTopicAble/eventTopic"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropQuantityStyle">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//style/CxGridPropQuantityStyle/valuePropertyPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropQuantityStyle/valuePropertyDotPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropQuantityStyle/valueNumberFormat"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//style/CxGridPropQuantityStyle/uomPropertyPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropQuantityStyle/uomPropertyDotPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropQuantityStyle/htmlPattern"/>
+ </genClasses>
+ <genClasses ecoreClass="gridsource.ecore#//style/CxGridPropPriceStyle">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//style/CxGridPropPriceStyle/valuePropertyPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropPriceStyle/valuePropertyDotPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropPriceStyle/valueNumberFormat"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference gridsource.ecore#//style/CxGridPropPriceStyle/currencyPropertyPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropPriceStyle/currencyPropertyDotPath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute gridsource.ecore#//style/CxGridPropPriceStyle/htmlPattern"/>
+ </genClasses>
+ </nestedGenPackages>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.osbp.infogrid.model/plugin.properties b/org.eclipse.osbp.infogrid.model/plugin.properties
new file mode 100644
index 0000000..03139e3
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = GSGridSource Model
+providerName = www.example.org
diff --git a/org.eclipse.osbp.infogrid.model/plugin.xml b/org.eclipse.osbp.infogrid.model/plugin.xml
new file mode 100644
index 0000000..0dc0ede
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated gridsource -->
+ <package
+ uri="http://osbp.eclipse.org/gridsource/v1/core"
+ class="org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage"
+ genModel="model/gridsource.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated gridsource -->
+ <package
+ uri="http://osbp.eclipse.org/gridsource/v1/core/style"
+ class="org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage"
+ genModel="model/gridsource.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.infogrid.model/pom.xml b/org.eclipse.osbp.infogrid.model/pom.xml
new file mode 100644
index 0000000..62e3855
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.model</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridNestedField.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridNestedField.java
new file mode 100644
index 0000000..103827f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridNestedField.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.common.types.JvmOperation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Cx Grid Nested Field</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getField <em>Field</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getDotPath <em>Dot Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedField()
+ * @model
+ * @generated
+ */
+public interface CxGridNestedField extends EObject {
+ /**
+ * Returns the value of the '<em><b>Field</b></em>' reference. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Field</em>' reference isn't clear, there
+ * really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Field</em>' reference.
+ * @see #setField(JvmOperation)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedField_Field()
+ * @model
+ * @generated
+ */
+ JvmOperation getField();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getField <em>Field</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Field</em>' reference.
+ * @see #getField()
+ * @generated
+ */
+ void setField(JvmOperation value);
+
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path</em>' containment reference.
+ * @see #setPath(CxGridNestedPath)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedField_Path()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedPath getPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getPath <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @param value the new value of the '<em>Path</em>' containment reference.
+ * @see #getPath()
+ * @generated
+ */
+ void setPath(CxGridNestedPath value);
+
+ /**
+ * Returns the value of the '<em><b>Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dot 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>Dot Path</em>' attribute.
+ * @see #setDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedField_DotPath()
+ * @model
+ * @generated
+ */
+ String getDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getDotPath <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dot Path</em>' attribute.
+ * @see #getDotPath()
+ * @generated
+ */
+ void setDotPath(String value);
+
+} // CxGridNestedField
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridNestedPath.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridNestedPath.java
new file mode 100644
index 0000000..bf64bad
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridNestedPath.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.common.types.JvmOperation;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Cx Grid Nested Path</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getField <em>Field</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getDotPath <em>Dot Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedPath()
+ * @model
+ * @generated
+ */
+public interface CxGridNestedPath extends EObject {
+ /**
+ * Returns the value of the '<em><b>Field</b></em>' reference. <!--
+ * begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Field</em>' reference isn't clear, there
+ * really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Field</em>' reference.
+ * @see #setField(JvmOperation)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedPath_Field()
+ * @model
+ * @generated
+ */
+ JvmOperation getField();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getField <em>Field</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @param value the new value of the '<em>Field</em>' reference.
+ * @see #getField()
+ * @generated
+ */
+ void setField(JvmOperation value);
+
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path</em>' containment reference.
+ * @see #setPath(CxGridNestedPath)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedPath_Path()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedPath getPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getPath <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @param value the new value of the '<em>Path</em>' containment reference.
+ * @see #getPath()
+ * @generated
+ */
+ void setPath(CxGridNestedPath value);
+
+ /**
+ * Returns the value of the '<em><b>Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dot 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>Dot Path</em>' attribute.
+ * @see #setDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridNestedPath_DotPath()
+ * @model
+ * @generated
+ */
+ String getDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getDotPath <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dot Path</em>' attribute.
+ * @see #getDotPath()
+ * @generated
+ */
+ void setDotPath(String value);
+
+} // CxGridNestedPath
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridProperty.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridProperty.java
new file mode 100644
index 0000000..570a4e6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridProperty.java
@@ -0,0 +1,141 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>Cx Grid Property</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getStyle <em>Style</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getDotPath <em>Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#isEditable <em>Editable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridProperty()
+ * @model
+ * @generated
+ */
+public interface CxGridProperty extends EObject {
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path</em>' containment reference.
+ * @see #setPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridProperty_Path()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getPath <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @param value the new value of the '<em>Path</em>' containment reference.
+ * @see #getPath()
+ * @generated
+ */
+ void setPath(CxGridNestedField value);
+
+ /**
+ * Returns the value of the '<em><b>Style</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Style</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Style</em>' containment reference.
+ * @see #setStyle(CxGridPropStyle)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridProperty_Style()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridPropStyle getStyle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getStyle <em>Style</em>}' containment reference.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @param value the new value of the '<em>Style</em>' containment reference.
+ * @see #getStyle()
+ * @generated
+ */
+ void setStyle(CxGridPropStyle value);
+
+ /**
+ * Returns the value of the '<em><b>Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dot 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>Dot Path</em>' attribute.
+ * @see #setDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridProperty_DotPath()
+ * @model
+ * @generated
+ */
+ String getDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getDotPath <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dot Path</em>' attribute.
+ * @see #getDotPath()
+ * @generated
+ */
+ void setDotPath(String 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...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Editable</em>' attribute.
+ * @see #setEditable(boolean)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridProperty_Editable()
+ * @model
+ * @generated
+ */
+ boolean isEditable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#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);
+
+} // CxGridProperty
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSource.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSource.java
new file mode 100644
index 0000000..cbb693c
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSource.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.infogrid.model.gridsource;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Source</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getTags <em>Tags</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootType <em>Root Type</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootTypeFQN <em>Root Type FQN</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getProperties <em>Properties</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getInputs <em>Inputs</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getSelectionEventTopic <em>Selection Event Topic</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource()
+ * @model
+ * @generated
+ */
+public interface CxGridSource extends EObject {
+ /**
+ * 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...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_Id()
+ * @model
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#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>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.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_Tags()
+ * @model
+ * @generated
+ */
+ EList<String> getTags();
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * The default value is <code>"ecview"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kind</em>' attribute.
+ * @see #setKind(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_Kind()
+ * @model default="ecview"
+ * @generated
+ */
+ String getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getKind <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kind</em>' attribute.
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(String value);
+
+ /**
+ * Returns the value of the '<em><b>Root Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Root Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Root Type</em>' containment reference.
+ * @see #setRootType(JvmTypeReference)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_RootType()
+ * @model containment="true"
+ * @generated
+ */
+ JvmTypeReference getRootType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootType <em>Root Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Root Type</em>' containment reference.
+ * @see #getRootType()
+ * @generated
+ */
+ void setRootType(JvmTypeReference value);
+
+ /**
+ * Returns the value of the '<em><b>Root Type FQN</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Root Type FQN</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Root Type FQN</em>' attribute.
+ * @see #setRootTypeFQN(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_RootTypeFQN()
+ * @model
+ * @generated
+ */
+ String getRootTypeFQN();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootTypeFQN <em>Root Type FQN</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Root Type FQN</em>' attribute.
+ * @see #getRootTypeFQN()
+ * @generated
+ */
+ void setRootTypeFQN(String value);
+
+ /**
+ * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Properties</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>Properties</em>' containment reference list.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_Properties()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CxGridProperty> getProperties();
+
+ /**
+ * Returns the value of the '<em><b>Inputs</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inputs</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>Inputs</em>' containment reference list.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_Inputs()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CxGridSourceInput> getInputs();
+
+ /**
+ * Returns the value of the '<em><b>Selection Event Topic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Selection Event Topic</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Selection Event Topic</em>' attribute.
+ * @see #setSelectionEventTopic(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSource_SelectionEventTopic()
+ * @model
+ * @generated
+ */
+ String getSelectionEventTopic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getSelectionEventTopic <em>Selection Event Topic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Selection Event Topic</em>' attribute.
+ * @see #getSelectionEventTopic()
+ * @generated
+ */
+ void setSelectionEventTopic(String value);
+
+} // CxGridSource
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceEQFilter.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceEQFilter.java
new file mode 100644
index 0000000..358d4ea
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceEQFilter.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.infogrid.model.gridsource;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>EQ Filter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getInputTypePropertyPath <em>Input Type Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getRootTypePropertyPath <em>Root Type Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceEQFilter()
+ * @model
+ * @generated
+ */
+public interface CxGridSourceEQFilter extends EObject {
+ /**
+ * Returns the value of the '<em><b>Input Type Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Type Property Path</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Type Property Path</em>' containment reference.
+ * @see #setInputTypePropertyPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceEQFilter_InputTypePropertyPath()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getInputTypePropertyPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getInputTypePropertyPath <em>Input Type Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Type Property Path</em>' containment reference.
+ * @see #getInputTypePropertyPath()
+ * @generated
+ */
+ void setInputTypePropertyPath(CxGridNestedField value);
+
+ /**
+ * Returns the value of the '<em><b>Root Type Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Root Type Property Path</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Root Type Property Path</em>' containment reference.
+ * @see #setRootTypePropertyPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceEQFilter_RootTypePropertyPath()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getRootTypePropertyPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getRootTypePropertyPath <em>Root Type Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Root Type Property Path</em>' containment reference.
+ * @see #getRootTypePropertyPath()
+ * @generated
+ */
+ void setRootTypePropertyPath(CxGridNestedField value);
+
+} // CxGridSourceEQFilter
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceFactory.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceFactory.java
new file mode 100644
index 0000000..970181a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceFactory.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.infogrid.model.gridsource;
+
+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.infogrid.model.gridsource.CxGridSourcePackage
+ * @generated
+ */
+public interface CxGridSourceFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CxGridSourceFactory eINSTANCE = org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Source</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Source</em>'.
+ * @generated
+ */
+ CxGridSource createCxGridSource();
+
+ /**
+ * Returns a new object of class '<em>Input</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Input</em>'.
+ * @generated
+ */
+ CxGridSourceInput createCxGridSourceInput();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Property</em>'.
+ * @generated
+ */
+ CxGridProperty createCxGridProperty();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Nested Field</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Nested Field</em>'.
+ * @generated
+ */
+ CxGridNestedField createCxGridNestedField();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Nested Path</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Nested Path</em>'.
+ * @generated
+ */
+ CxGridNestedPath createCxGridNestedPath();
+
+ /**
+ * Returns a new object of class '<em>EQ Filter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>EQ Filter</em>'.
+ * @generated
+ */
+ CxGridSourceEQFilter createCxGridSourceEQFilter();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CxGridSourcePackage getCxGridSourcePackage();
+
+} //CxGridSourceFactory
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceInput.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceInput.java
new file mode 100644
index 0000000..9eeae4b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourceInput.java
@@ -0,0 +1,108 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Input</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputType <em>Input Type</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputTypeFQN <em>Input Type FQN</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getFilters <em>Filters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceInput()
+ * @model
+ * @generated
+ */
+public interface CxGridSourceInput extends EObject {
+ /**
+ * Returns the value of the '<em><b>Input Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Type</em>' containment reference.
+ * @see #setInputType(JvmTypeReference)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceInput_InputType()
+ * @model containment="true"
+ * @generated
+ */
+ JvmTypeReference getInputType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputType <em>Input Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Type</em>' containment reference.
+ * @see #getInputType()
+ * @generated
+ */
+ void setInputType(JvmTypeReference value);
+
+ /**
+ * Returns the value of the '<em><b>Input Type FQN</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Type FQN</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Type FQN</em>' attribute.
+ * @see #setInputTypeFQN(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceInput_InputTypeFQN()
+ * @model
+ * @generated
+ */
+ String getInputTypeFQN();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputTypeFQN <em>Input Type FQN</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Type FQN</em>' attribute.
+ * @see #getInputTypeFQN()
+ * @generated
+ */
+ void setInputTypeFQN(String value);
+
+ /**
+ * Returns the value of the '<em><b>Filters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Filters</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>Filters</em>' containment reference list.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage#getCxGridSourceInput_Filters()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CxGridSourceEQFilter> getFilters();
+
+} // CxGridSourceInput
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourcePackage.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourcePackage.java
new file mode 100644
index 0000000..afc12cf
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/CxGridSourcePackage.java
@@ -0,0 +1,971 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource;
+
+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.infogrid.model.gridsource.CxGridSourceFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CxGridSourcePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "gridsource";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://osbp.eclipse.org/gridsource/v1/core";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "gridsource";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CxGridSourcePackage eINSTANCE = org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl <em>Cx Grid Source</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridSource()
+ * @generated
+ */
+ int CX_GRID_SOURCE = 0;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Tags</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__TAGS = 1;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__KIND = 2;
+
+ /**
+ * The feature id for the '<em><b>Root Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__ROOT_TYPE = 3;
+
+ /**
+ * The feature id for the '<em><b>Root Type FQN</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__ROOT_TYPE_FQN = 4;
+
+ /**
+ * The feature id for the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__PROPERTIES = 5;
+
+ /**
+ * The feature id for the '<em><b>Inputs</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__INPUTS = 6;
+
+ /**
+ * The feature id for the '<em><b>Selection Event Topic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE__SELECTION_EVENT_TOPIC = 7;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Source</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_FEATURE_COUNT = 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl <em>Input</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridSourceInput()
+ * @generated
+ */
+ int CX_GRID_SOURCE_INPUT = 1;
+
+ /**
+ * The feature id for the '<em><b>Input Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_INPUT__INPUT_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Input Type FQN</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN = 1;
+
+ /**
+ * The feature id for the '<em><b>Filters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_INPUT__FILTERS = 2;
+
+ /**
+ * The number of structural features of the '<em>Input</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_INPUT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl <em>Cx Grid Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridProperty()
+ * @generated
+ */
+ int CX_GRID_PROPERTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROPERTY__PATH = 0;
+
+ /**
+ * The feature id for the '<em><b>Style</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROPERTY__STYLE = 1;
+
+ /**
+ * The feature id for the '<em><b>Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROPERTY__DOT_PATH = 2;
+
+ /**
+ * The feature id for the '<em><b>Editable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROPERTY__EDITABLE = 3;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROPERTY_FEATURE_COUNT = 4;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl <em>Cx Grid Nested Field</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridNestedField()
+ * @generated
+ */
+ int CX_GRID_NESTED_FIELD = 3;
+
+ /**
+ * The feature id for the '<em><b>Field</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_FIELD__FIELD = 0;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_FIELD__PATH = 1;
+
+ /**
+ * The feature id for the '<em><b>Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_FIELD__DOT_PATH = 2;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Nested Field</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_FIELD_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl <em>Cx Grid Nested Path</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridNestedPath()
+ * @generated
+ */
+ int CX_GRID_NESTED_PATH = 4;
+
+ /**
+ * The feature id for the '<em><b>Field</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_PATH__FIELD = 0;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_PATH__PATH = 1;
+
+ /**
+ * The feature id for the '<em><b>Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_PATH__DOT_PATH = 2;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Nested Path</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_NESTED_PATH_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceEQFilterImpl <em>EQ Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceEQFilterImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridSourceEQFilter()
+ * @generated
+ */
+ int CX_GRID_SOURCE_EQ_FILTER = 5;
+
+ /**
+ * The feature id for the '<em><b>Input Type Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH = 0;
+
+ /**
+ * The feature id for the '<em><b>Root Type Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH = 1;
+
+ /**
+ * The number of structural features of the '<em>EQ Filter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_SOURCE_EQ_FILTER_FEATURE_COUNT = 2;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource <em>Cx Grid Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Source</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource
+ * @generated
+ */
+ EClass getCxGridSource();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getId()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EAttribute getCxGridSource_Id();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#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.infogrid.model.gridsource.CxGridSource#getTags()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EAttribute getCxGridSource_Tags();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getKind()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EAttribute getCxGridSource_Kind();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootType <em>Root Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Root Type</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootType()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EReference getCxGridSource_RootType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootTypeFQN <em>Root Type FQN</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Root Type FQN</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getRootTypeFQN()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EAttribute getCxGridSource_RootTypeFQN();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getProperties <em>Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Properties</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getProperties()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EReference getCxGridSource_Properties();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getInputs <em>Inputs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Inputs</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getInputs()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EReference getCxGridSource_Inputs();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getSelectionEventTopic <em>Selection Event Topic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Selection Event Topic</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSource#getSelectionEventTopic()
+ * @see #getCxGridSource()
+ * @generated
+ */
+ EAttribute getCxGridSource_SelectionEventTopic();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput <em>Input</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Input</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput
+ * @generated
+ */
+ EClass getCxGridSourceInput();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputType <em>Input Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Type</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputType()
+ * @see #getCxGridSourceInput()
+ * @generated
+ */
+ EReference getCxGridSourceInput_InputType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputTypeFQN <em>Input Type FQN</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Input Type FQN</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getInputTypeFQN()
+ * @see #getCxGridSourceInput()
+ * @generated
+ */
+ EAttribute getCxGridSourceInput_InputTypeFQN();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getFilters <em>Filters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Filters</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput#getFilters()
+ * @see #getCxGridSourceInput()
+ * @generated
+ */
+ EReference getCxGridSourceInput_Filters();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty <em>Cx Grid Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Property</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty
+ * @generated
+ */
+ EClass getCxGridProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getPath()
+ * @see #getCxGridProperty()
+ * @generated
+ */
+ EReference getCxGridProperty_Path();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getStyle <em>Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getStyle()
+ * @see #getCxGridProperty()
+ * @generated
+ */
+ EReference getCxGridProperty_Style();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getDotPath <em>Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#getDotPath()
+ * @see #getCxGridProperty()
+ * @generated
+ */
+ EAttribute getCxGridProperty_DotPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#isEditable <em>Editable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Editable</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty#isEditable()
+ * @see #getCxGridProperty()
+ * @generated
+ */
+ EAttribute getCxGridProperty_Editable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField <em>Cx Grid Nested Field</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Nested Field</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField
+ * @generated
+ */
+ EClass getCxGridNestedField();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getField <em>Field</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Field</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getField()
+ * @see #getCxGridNestedField()
+ * @generated
+ */
+ EReference getCxGridNestedField_Field();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getPath()
+ * @see #getCxGridNestedField()
+ * @generated
+ */
+ EReference getCxGridNestedField_Path();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getDotPath <em>Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField#getDotPath()
+ * @see #getCxGridNestedField()
+ * @generated
+ */
+ EAttribute getCxGridNestedField_DotPath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath <em>Cx Grid Nested Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Nested Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath
+ * @generated
+ */
+ EClass getCxGridNestedPath();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getField <em>Field</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Field</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getField()
+ * @see #getCxGridNestedPath()
+ * @generated
+ */
+ EReference getCxGridNestedPath_Field();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getPath()
+ * @see #getCxGridNestedPath()
+ * @generated
+ */
+ EReference getCxGridNestedPath_Path();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getDotPath <em>Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath#getDotPath()
+ * @see #getCxGridNestedPath()
+ * @generated
+ */
+ EAttribute getCxGridNestedPath_DotPath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter <em>EQ Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>EQ Filter</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter
+ * @generated
+ */
+ EClass getCxGridSourceEQFilter();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getInputTypePropertyPath <em>Input Type Property Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Type Property Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getInputTypePropertyPath()
+ * @see #getCxGridSourceEQFilter()
+ * @generated
+ */
+ EReference getCxGridSourceEQFilter_InputTypePropertyPath();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getRootTypePropertyPath <em>Root Type Property Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Root Type Property Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter#getRootTypePropertyPath()
+ * @see #getCxGridSourceEQFilter()
+ * @generated
+ */
+ EReference getCxGridSourceEQFilter_RootTypePropertyPath();
+
+ /**
+ * 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
+ */
+ CxGridSourceFactory getCxGridSourceFactory();
+
+ /**
+ * <!-- 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.infogrid.model.gridsource.impl.CxGridSourceImpl <em>Cx Grid Source</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridSource()
+ * @generated
+ */
+ EClass CX_GRID_SOURCE = eINSTANCE.getCxGridSource();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_SOURCE__ID = eINSTANCE.getCxGridSource_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Tags</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_SOURCE__TAGS = eINSTANCE.getCxGridSource_Tags();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_SOURCE__KIND = eINSTANCE.getCxGridSource_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Root Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE__ROOT_TYPE = eINSTANCE.getCxGridSource_RootType();
+
+ /**
+ * The meta object literal for the '<em><b>Root Type FQN</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_SOURCE__ROOT_TYPE_FQN = eINSTANCE.getCxGridSource_RootTypeFQN();
+
+ /**
+ * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE__PROPERTIES = eINSTANCE.getCxGridSource_Properties();
+
+ /**
+ * The meta object literal for the '<em><b>Inputs</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE__INPUTS = eINSTANCE.getCxGridSource_Inputs();
+
+ /**
+ * The meta object literal for the '<em><b>Selection Event Topic</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_SOURCE__SELECTION_EVENT_TOPIC = eINSTANCE.getCxGridSource_SelectionEventTopic();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl <em>Input</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridSourceInput()
+ * @generated
+ */
+ EClass CX_GRID_SOURCE_INPUT = eINSTANCE.getCxGridSourceInput();
+
+ /**
+ * The meta object literal for the '<em><b>Input Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE_INPUT__INPUT_TYPE = eINSTANCE.getCxGridSourceInput_InputType();
+
+ /**
+ * The meta object literal for the '<em><b>Input Type FQN</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN = eINSTANCE.getCxGridSourceInput_InputTypeFQN();
+
+ /**
+ * The meta object literal for the '<em><b>Filters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE_INPUT__FILTERS = eINSTANCE.getCxGridSourceInput_Filters();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl <em>Cx Grid Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridProperty()
+ * @generated
+ */
+ EClass CX_GRID_PROPERTY = eINSTANCE.getCxGridProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROPERTY__PATH = eINSTANCE.getCxGridProperty_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Style</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROPERTY__STYLE = eINSTANCE.getCxGridProperty_Style();
+
+ /**
+ * The meta object literal for the '<em><b>Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROPERTY__DOT_PATH = eINSTANCE.getCxGridProperty_DotPath();
+
+ /**
+ * The meta object literal for the '<em><b>Editable</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROPERTY__EDITABLE = eINSTANCE.getCxGridProperty_Editable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl <em>Cx Grid Nested Field</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridNestedField()
+ * @generated
+ */
+ EClass CX_GRID_NESTED_FIELD = eINSTANCE.getCxGridNestedField();
+
+ /**
+ * The meta object literal for the '<em><b>Field</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_NESTED_FIELD__FIELD = eINSTANCE.getCxGridNestedField_Field();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_NESTED_FIELD__PATH = eINSTANCE.getCxGridNestedField_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_NESTED_FIELD__DOT_PATH = eINSTANCE.getCxGridNestedField_DotPath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl <em>Cx Grid Nested Path</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridNestedPath()
+ * @generated
+ */
+ EClass CX_GRID_NESTED_PATH = eINSTANCE.getCxGridNestedPath();
+
+ /**
+ * The meta object literal for the '<em><b>Field</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_NESTED_PATH__FIELD = eINSTANCE.getCxGridNestedPath_Field();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_NESTED_PATH__PATH = eINSTANCE.getCxGridNestedPath_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_NESTED_PATH__DOT_PATH = eINSTANCE.getCxGridNestedPath_DotPath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceEQFilterImpl <em>EQ Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceEQFilterImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl#getCxGridSourceEQFilter()
+ * @generated
+ */
+ EClass CX_GRID_SOURCE_EQ_FILTER = eINSTANCE.getCxGridSourceEQFilter();
+
+ /**
+ * The meta object literal for the '<em><b>Input Type Property Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH = eINSTANCE.getCxGridSourceEQFilter_InputTypePropertyPath();
+
+ /**
+ * The meta object literal for the '<em><b>Root Type Property Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH = eINSTANCE.getCxGridSourceEQFilter_RootTypePropertyPath();
+
+ }
+
+} //CxGridSourcePackage
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridNestedFieldImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridNestedFieldImpl.java
new file mode 100644
index 0000000..edfc31b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridNestedFieldImpl.java
@@ -0,0 +1,312 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.xtext.common.types.JvmOperation;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Nested Field</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl#getField <em>Field</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedFieldImpl#getDotPath <em>Dot Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridNestedFieldImpl extends MinimalEObjectImpl.Container implements CxGridNestedField {
+ /**
+ * The cached value of the '{@link #getField() <em>Field</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getField()
+ * @generated
+ * @ordered
+ */
+ protected JvmOperation field;
+
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedPath path;
+
+ /**
+ * The default value of the '{@link #getDotPath() <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDotPath() <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String dotPath = DOT_PATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridNestedFieldImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridSourcePackage.Literals.CX_GRID_NESTED_FIELD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmOperation getField() {
+ if (field != null && field.eIsProxy()) {
+ InternalEObject oldField = (InternalEObject)field;
+ field = (JvmOperation)eResolveProxy(oldField);
+ if (field != oldField) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, CxGridSourcePackage.CX_GRID_NESTED_FIELD__FIELD, oldField, field));
+ }
+ }
+ return field;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmOperation basicGetField() {
+ return field;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setField(JvmOperation newField) {
+ JvmOperation oldField = field;
+ field = newField;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_FIELD__FIELD, oldField, field));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedPath getPath() {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPath(CxGridNestedPath newPath, NotificationChain msgs) {
+ CxGridNestedPath oldPath = path;
+ path = newPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH, oldPath, newPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPath(CxGridNestedPath newPath) {
+ if (newPath != path) {
+ NotificationChain msgs = null;
+ if (path != null)
+ msgs = ((InternalEObject)path).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH, null, msgs);
+ if (newPath != null)
+ msgs = ((InternalEObject)newPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH, null, msgs);
+ msgs = basicSetPath(newPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH, newPath, newPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDotPath() {
+ return dotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDotPath(String newDotPath) {
+ String oldDotPath = dotPath;
+ dotPath = newDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_FIELD__DOT_PATH, oldDotPath, dotPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH:
+ return basicSetPath(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 CxGridSourcePackage.CX_GRID_NESTED_FIELD__FIELD:
+ if (resolve) return getField();
+ return basicGetField();
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH:
+ return getPath();
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__DOT_PATH:
+ return getDotPath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__FIELD:
+ setField((JvmOperation)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH:
+ setPath((CxGridNestedPath)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__DOT_PATH:
+ setDotPath((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__FIELD:
+ setField((JvmOperation)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH:
+ setPath((CxGridNestedPath)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__DOT_PATH:
+ setDotPath(DOT_PATH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__FIELD:
+ return field != null;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__PATH:
+ return path != null;
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD__DOT_PATH:
+ return DOT_PATH_EDEFAULT == null ? dotPath != null : !DOT_PATH_EDEFAULT.equals(dotPath);
+ }
+ 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(" (dotPath: ");
+ result.append(dotPath);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridNestedFieldImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridNestedPathImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridNestedPathImpl.java
new file mode 100644
index 0000000..f4d16db
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridNestedPathImpl.java
@@ -0,0 +1,298 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.xtext.common.types.JvmOperation;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Cx Grid Nested Path</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl#getField <em>Field</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridNestedPathImpl#getDotPath <em>Dot Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridNestedPathImpl extends MinimalEObjectImpl.Container
+ implements CxGridNestedPath {
+ /**
+ * The cached value of the '{@link #getField() <em>Field</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getField()
+ * @generated
+ * @ordered
+ */
+ protected JvmOperation field;
+
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedPath path;
+
+ /**
+ * The default value of the '{@link #getDotPath() <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDotPath() <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String dotPath = DOT_PATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridNestedPathImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridSourcePackage.Literals.CX_GRID_NESTED_PATH;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmOperation getField() {
+ if (field != null && field.eIsProxy()) {
+ InternalEObject oldField = (InternalEObject)field;
+ field = (JvmOperation)eResolveProxy(oldField);
+ if (field != oldField) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, CxGridSourcePackage.CX_GRID_NESTED_PATH__FIELD, oldField, field));
+ }
+ }
+ return field;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmOperation basicGetField() {
+ return field;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setField(JvmOperation newField) {
+ JvmOperation oldField = field;
+ field = newField;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_PATH__FIELD, oldField, field));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedPath getPath() {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPath(CxGridNestedPath newPath,
+ NotificationChain msgs) {
+ CxGridNestedPath oldPath = path;
+ path = newPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH, oldPath, newPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPath(CxGridNestedPath newPath) {
+ if (newPath != path) {
+ NotificationChain msgs = null;
+ if (path != null)
+ msgs = ((InternalEObject)path).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH, null, msgs);
+ if (newPath != null)
+ msgs = ((InternalEObject)newPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH, null, msgs);
+ msgs = basicSetPath(newPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH, newPath, newPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDotPath() {
+ return dotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDotPath(String newDotPath) {
+ String oldDotPath = dotPath;
+ dotPath = newDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_NESTED_PATH__DOT_PATH, oldDotPath, dotPath));
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd,
+ int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH:
+ return basicSetPath(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 CxGridSourcePackage.CX_GRID_NESTED_PATH__FIELD:
+ if (resolve) return getField();
+ return basicGetField();
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH:
+ return getPath();
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__DOT_PATH:
+ return getDotPath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__FIELD:
+ setField((JvmOperation)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH:
+ setPath((CxGridNestedPath)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__DOT_PATH:
+ setDotPath((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__FIELD:
+ setField((JvmOperation)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH:
+ setPath((CxGridNestedPath)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__DOT_PATH:
+ setDotPath(DOT_PATH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__FIELD:
+ return field != null;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__PATH:
+ return path != null;
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH__DOT_PATH:
+ return DOT_PATH_EDEFAULT == null ? dotPath != null : !DOT_PATH_EDEFAULT.equals(dotPath);
+ }
+ 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(" (dotPath: ");
+ result.append(dotPath);
+ result.append(')');
+ return result.toString();
+ }
+
+} // CxGridNestedPathImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridPropertyImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridPropertyImpl.java
new file mode 100644
index 0000000..e7ee99b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridPropertyImpl.java
@@ -0,0 +1,372 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl#getStyle <em>Style</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl#getDotPath <em>Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridPropertyImpl#isEditable <em>Editable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropertyImpl extends MinimalEObjectImpl.Container implements CxGridProperty {
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField path;
+
+ /**
+ * The cached value of the '{@link #getStyle() <em>Style</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStyle()
+ * @generated
+ * @ordered
+ */
+ protected CxGridPropStyle style;
+
+ /**
+ * The default value of the '{@link #getDotPath() <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDotPath() <em>Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String dotPath = DOT_PATH_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;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridSourcePackage.Literals.CX_GRID_PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getPath() {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPath(CxGridNestedField newPath, NotificationChain msgs) {
+ CxGridNestedField oldPath = path;
+ path = newPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_PROPERTY__PATH, oldPath, newPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPath(CxGridNestedField newPath) {
+ if (newPath != path) {
+ NotificationChain msgs = null;
+ if (path != null)
+ msgs = ((InternalEObject)path).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_PROPERTY__PATH, null, msgs);
+ if (newPath != null)
+ msgs = ((InternalEObject)newPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_PROPERTY__PATH, null, msgs);
+ msgs = basicSetPath(newPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_PROPERTY__PATH, newPath, newPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropStyle getStyle() {
+ return style;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStyle(CxGridPropStyle newStyle, NotificationChain msgs) {
+ CxGridPropStyle oldStyle = style;
+ style = newStyle;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_PROPERTY__STYLE, oldStyle, newStyle);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStyle(CxGridPropStyle newStyle) {
+ if (newStyle != style) {
+ NotificationChain msgs = null;
+ if (style != null)
+ msgs = ((InternalEObject)style).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_PROPERTY__STYLE, null, msgs);
+ if (newStyle != null)
+ msgs = ((InternalEObject)newStyle).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_PROPERTY__STYLE, null, msgs);
+ msgs = basicSetStyle(newStyle, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_PROPERTY__STYLE, newStyle, newStyle));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDotPath() {
+ return dotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDotPath(String newDotPath) {
+ String oldDotPath = dotPath;
+ dotPath = newDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_PROPERTY__DOT_PATH, oldDotPath, dotPath));
+ }
+
+ /**
+ * <!-- 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, CxGridSourcePackage.CX_GRID_PROPERTY__EDITABLE, oldEditable, editable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_PROPERTY__PATH:
+ return basicSetPath(null, msgs);
+ case CxGridSourcePackage.CX_GRID_PROPERTY__STYLE:
+ return basicSetStyle(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 CxGridSourcePackage.CX_GRID_PROPERTY__PATH:
+ return getPath();
+ case CxGridSourcePackage.CX_GRID_PROPERTY__STYLE:
+ return getStyle();
+ case CxGridSourcePackage.CX_GRID_PROPERTY__DOT_PATH:
+ return getDotPath();
+ case CxGridSourcePackage.CX_GRID_PROPERTY__EDITABLE:
+ return isEditable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_PROPERTY__PATH:
+ setPath((CxGridNestedField)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__STYLE:
+ setStyle((CxGridPropStyle)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__DOT_PATH:
+ setDotPath((String)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__EDITABLE:
+ setEditable((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_PROPERTY__PATH:
+ setPath((CxGridNestedField)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__STYLE:
+ setStyle((CxGridPropStyle)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__DOT_PATH:
+ setDotPath(DOT_PATH_EDEFAULT);
+ return;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__EDITABLE:
+ setEditable(EDITABLE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_PROPERTY__PATH:
+ return path != null;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__STYLE:
+ return style != null;
+ case CxGridSourcePackage.CX_GRID_PROPERTY__DOT_PATH:
+ return DOT_PATH_EDEFAULT == null ? dotPath != null : !DOT_PATH_EDEFAULT.equals(dotPath);
+ case CxGridSourcePackage.CX_GRID_PROPERTY__EDITABLE:
+ return editable != EDITABLE_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(" (dotPath: ");
+ result.append(dotPath);
+ result.append(", editable: ");
+ result.append(editable);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropertyImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceEQFilterImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceEQFilterImpl.java
new file mode 100644
index 0000000..0e25dee
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceEQFilterImpl.java
@@ -0,0 +1,252 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EQ Filter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceEQFilterImpl#getInputTypePropertyPath <em>Input Type Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceEQFilterImpl#getRootTypePropertyPath <em>Root Type Property Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridSourceEQFilterImpl extends MinimalEObjectImpl.Container implements CxGridSourceEQFilter {
+ /**
+ * The cached value of the '{@link #getInputTypePropertyPath() <em>Input Type Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputTypePropertyPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField inputTypePropertyPath;
+
+ /**
+ * The cached value of the '{@link #getRootTypePropertyPath() <em>Root Type Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRootTypePropertyPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField rootTypePropertyPath;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceEQFilterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridSourcePackage.Literals.CX_GRID_SOURCE_EQ_FILTER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getInputTypePropertyPath() {
+ return inputTypePropertyPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputTypePropertyPath(CxGridNestedField newInputTypePropertyPath, NotificationChain msgs) {
+ CxGridNestedField oldInputTypePropertyPath = inputTypePropertyPath;
+ inputTypePropertyPath = newInputTypePropertyPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH, oldInputTypePropertyPath, newInputTypePropertyPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputTypePropertyPath(CxGridNestedField newInputTypePropertyPath) {
+ if (newInputTypePropertyPath != inputTypePropertyPath) {
+ NotificationChain msgs = null;
+ if (inputTypePropertyPath != null)
+ msgs = ((InternalEObject)inputTypePropertyPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH, null, msgs);
+ if (newInputTypePropertyPath != null)
+ msgs = ((InternalEObject)newInputTypePropertyPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH, null, msgs);
+ msgs = basicSetInputTypePropertyPath(newInputTypePropertyPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH, newInputTypePropertyPath, newInputTypePropertyPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getRootTypePropertyPath() {
+ return rootTypePropertyPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRootTypePropertyPath(CxGridNestedField newRootTypePropertyPath, NotificationChain msgs) {
+ CxGridNestedField oldRootTypePropertyPath = rootTypePropertyPath;
+ rootTypePropertyPath = newRootTypePropertyPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH, oldRootTypePropertyPath, newRootTypePropertyPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRootTypePropertyPath(CxGridNestedField newRootTypePropertyPath) {
+ if (newRootTypePropertyPath != rootTypePropertyPath) {
+ NotificationChain msgs = null;
+ if (rootTypePropertyPath != null)
+ msgs = ((InternalEObject)rootTypePropertyPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH, null, msgs);
+ if (newRootTypePropertyPath != null)
+ msgs = ((InternalEObject)newRootTypePropertyPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH, null, msgs);
+ msgs = basicSetRootTypePropertyPath(newRootTypePropertyPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH, newRootTypePropertyPath, newRootTypePropertyPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH:
+ return basicSetInputTypePropertyPath(null, msgs);
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH:
+ return basicSetRootTypePropertyPath(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 CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH:
+ return getInputTypePropertyPath();
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH:
+ return getRootTypePropertyPath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH:
+ setInputTypePropertyPath((CxGridNestedField)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH:
+ setRootTypePropertyPath((CxGridNestedField)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH:
+ setInputTypePropertyPath((CxGridNestedField)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH:
+ setRootTypePropertyPath((CxGridNestedField)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__INPUT_TYPE_PROPERTY_PATH:
+ return inputTypePropertyPath != null;
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER__ROOT_TYPE_PROPERTY_PATH:
+ return rootTypePropertyPath != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //CxGridSourceEQFilterImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceFactoryImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceFactoryImpl.java
new file mode 100644
index 0000000..4e19b26
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceFactoryImpl.java
@@ -0,0 +1,160 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.infogrid.model.gridsource.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourceFactoryImpl extends EFactoryImpl implements CxGridSourceFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CxGridSourceFactory init() {
+ try {
+ CxGridSourceFactory theCxGridSourceFactory = (CxGridSourceFactory)EPackage.Registry.INSTANCE.getEFactory(CxGridSourcePackage.eNS_URI);
+ if (theCxGridSourceFactory != null) {
+ return theCxGridSourceFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CxGridSourceFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CxGridSourcePackage.CX_GRID_SOURCE: return createCxGridSource();
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT: return createCxGridSourceInput();
+ case CxGridSourcePackage.CX_GRID_PROPERTY: return createCxGridProperty();
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD: return createCxGridNestedField();
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH: return createCxGridNestedPath();
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER: return createCxGridSourceEQFilter();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSource createCxGridSource() {
+ CxGridSourceImpl cxGridSource = new CxGridSourceImpl();
+ return cxGridSource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceInput createCxGridSourceInput() {
+ CxGridSourceInputImpl cxGridSourceInput = new CxGridSourceInputImpl();
+ return cxGridSourceInput;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridProperty createCxGridProperty() {
+ CxGridPropertyImpl cxGridProperty = new CxGridPropertyImpl();
+ return cxGridProperty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField createCxGridNestedField() {
+ CxGridNestedFieldImpl cxGridNestedField = new CxGridNestedFieldImpl();
+ return cxGridNestedField;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedPath createCxGridNestedPath() {
+ CxGridNestedPathImpl cxGridNestedPath = new CxGridNestedPathImpl();
+ return cxGridNestedPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceEQFilter createCxGridSourceEQFilter() {
+ CxGridSourceEQFilterImpl cxGridSourceEQFilter = new CxGridSourceEQFilterImpl();
+ return cxGridSourceEQFilter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourcePackage getCxGridSourcePackage() {
+ return (CxGridSourcePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CxGridSourcePackage getPackage() {
+ return CxGridSourcePackage.eINSTANCE;
+ }
+
+} //CxGridSourceFactoryImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceImpl.java
new file mode 100644
index 0000000..3d29782
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceImpl.java
@@ -0,0 +1,529 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Source</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getTags <em>Tags</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getRootType <em>Root Type</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getRootTypeFQN <em>Root Type FQN</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getProperties <em>Properties</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getInputs <em>Inputs</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceImpl#getSelectionEventTopic <em>Selection Event Topic</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridSourceImpl extends MinimalEObjectImpl.Container implements CxGridSource {
+ /**
+ * 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 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 #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final String KIND_EDEFAULT = "ecview";
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected String kind = KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRootType() <em>Root Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRootType()
+ * @generated
+ * @ordered
+ */
+ protected JvmTypeReference rootType;
+
+ /**
+ * The default value of the '{@link #getRootTypeFQN() <em>Root Type FQN</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRootTypeFQN()
+ * @generated
+ * @ordered
+ */
+ protected static final String ROOT_TYPE_FQN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRootTypeFQN() <em>Root Type FQN</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRootTypeFQN()
+ * @generated
+ * @ordered
+ */
+ protected String rootTypeFQN = ROOT_TYPE_FQN_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProperties()
+ * @generated
+ * @ordered
+ */
+ protected EList<CxGridProperty> properties;
+
+ /**
+ * The cached value of the '{@link #getInputs() <em>Inputs</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputs()
+ * @generated
+ * @ordered
+ */
+ protected EList<CxGridSourceInput> inputs;
+
+ /**
+ * The default value of the '{@link #getSelectionEventTopic() <em>Selection Event Topic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelectionEventTopic()
+ * @generated
+ * @ordered
+ */
+ protected static final String SELECTION_EVENT_TOPIC_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSelectionEventTopic() <em>Selection Event Topic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSelectionEventTopic()
+ * @generated
+ * @ordered
+ */
+ protected String selectionEventTopic = SELECTION_EVENT_TOPIC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridSourcePackage.Literals.CX_GRID_SOURCE;
+ }
+
+ /**
+ * <!-- 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, CxGridSourcePackage.CX_GRID_SOURCE__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getTags() {
+ if (tags == null) {
+ tags = new EDataTypeUniqueEList<String>(String.class, this, CxGridSourcePackage.CX_GRID_SOURCE__TAGS);
+ }
+ return tags;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKind(String newKind) {
+ String oldKind = kind;
+ kind = newKind;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmTypeReference getRootType() {
+ return rootType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRootType(JvmTypeReference newRootType, NotificationChain msgs) {
+ JvmTypeReference oldRootType = rootType;
+ rootType = newRootType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE, oldRootType, newRootType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRootType(JvmTypeReference newRootType) {
+ if (newRootType != rootType) {
+ NotificationChain msgs = null;
+ if (rootType != null)
+ msgs = ((InternalEObject)rootType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE, null, msgs);
+ if (newRootType != null)
+ msgs = ((InternalEObject)newRootType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE, null, msgs);
+ msgs = basicSetRootType(newRootType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE, newRootType, newRootType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRootTypeFQN() {
+ return rootTypeFQN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRootTypeFQN(String newRootTypeFQN) {
+ String oldRootTypeFQN = rootTypeFQN;
+ rootTypeFQN = newRootTypeFQN;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE_FQN, oldRootTypeFQN, rootTypeFQN));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CxGridProperty> getProperties() {
+ if (properties == null) {
+ properties = new EObjectContainmentEList<CxGridProperty>(CxGridProperty.class, this, CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES);
+ }
+ return properties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CxGridSourceInput> getInputs() {
+ if (inputs == null) {
+ inputs = new EObjectContainmentEList<CxGridSourceInput>(CxGridSourceInput.class, this, CxGridSourcePackage.CX_GRID_SOURCE__INPUTS);
+ }
+ return inputs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSelectionEventTopic() {
+ return selectionEventTopic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionEventTopic(String newSelectionEventTopic) {
+ String oldSelectionEventTopic = selectionEventTopic;
+ selectionEventTopic = newSelectionEventTopic;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC, oldSelectionEventTopic, selectionEventTopic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE:
+ return basicSetRootType(null, msgs);
+ case CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES:
+ return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+ case CxGridSourcePackage.CX_GRID_SOURCE__INPUTS:
+ return ((InternalEList<?>)getInputs()).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 CxGridSourcePackage.CX_GRID_SOURCE__ID:
+ return getId();
+ case CxGridSourcePackage.CX_GRID_SOURCE__TAGS:
+ return getTags();
+ case CxGridSourcePackage.CX_GRID_SOURCE__KIND:
+ return getKind();
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE:
+ return getRootType();
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE_FQN:
+ return getRootTypeFQN();
+ case CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES:
+ return getProperties();
+ case CxGridSourcePackage.CX_GRID_SOURCE__INPUTS:
+ return getInputs();
+ case CxGridSourcePackage.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC:
+ return getSelectionEventTopic();
+ }
+ 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 CxGridSourcePackage.CX_GRID_SOURCE__ID:
+ setId((String)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__TAGS:
+ getTags().clear();
+ getTags().addAll((Collection<? extends String>)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__KIND:
+ setKind((String)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE:
+ setRootType((JvmTypeReference)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE_FQN:
+ setRootTypeFQN((String)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES:
+ getProperties().clear();
+ getProperties().addAll((Collection<? extends CxGridProperty>)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__INPUTS:
+ getInputs().clear();
+ getInputs().addAll((Collection<? extends CxGridSourceInput>)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC:
+ setSelectionEventTopic((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__TAGS:
+ getTags().clear();
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE:
+ setRootType((JvmTypeReference)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE_FQN:
+ setRootTypeFQN(ROOT_TYPE_FQN_EDEFAULT);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES:
+ getProperties().clear();
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__INPUTS:
+ getInputs().clear();
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC:
+ setSelectionEventTopic(SELECTION_EVENT_TOPIC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case CxGridSourcePackage.CX_GRID_SOURCE__TAGS:
+ return tags != null && !tags.isEmpty();
+ case CxGridSourcePackage.CX_GRID_SOURCE__KIND:
+ return KIND_EDEFAULT == null ? kind != null : !KIND_EDEFAULT.equals(kind);
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE:
+ return rootType != null;
+ case CxGridSourcePackage.CX_GRID_SOURCE__ROOT_TYPE_FQN:
+ return ROOT_TYPE_FQN_EDEFAULT == null ? rootTypeFQN != null : !ROOT_TYPE_FQN_EDEFAULT.equals(rootTypeFQN);
+ case CxGridSourcePackage.CX_GRID_SOURCE__PROPERTIES:
+ return properties != null && !properties.isEmpty();
+ case CxGridSourcePackage.CX_GRID_SOURCE__INPUTS:
+ return inputs != null && !inputs.isEmpty();
+ case CxGridSourcePackage.CX_GRID_SOURCE__SELECTION_EVENT_TOPIC:
+ return SELECTION_EVENT_TOPIC_EDEFAULT == null ? selectionEventTopic != null : !SELECTION_EVENT_TOPIC_EDEFAULT.equals(selectionEventTopic);
+ }
+ 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(" (id: ");
+ result.append(id);
+ result.append(", tags: ");
+ result.append(tags);
+ result.append(", kind: ");
+ result.append(kind);
+ result.append(", rootTypeFQN: ");
+ result.append(rootTypeFQN);
+ result.append(", selectionEventTopic: ");
+ result.append(selectionEventTopic);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridSourceImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceInputImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceInputImpl.java
new file mode 100644
index 0000000..d6117aa
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourceInputImpl.java
@@ -0,0 +1,300 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.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.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Input</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl#getInputType <em>Input Type</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl#getInputTypeFQN <em>Input Type FQN</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourceInputImpl#getFilters <em>Filters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridSourceInputImpl extends MinimalEObjectImpl.Container implements CxGridSourceInput {
+ /**
+ * The cached value of the '{@link #getInputType() <em>Input Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputType()
+ * @generated
+ * @ordered
+ */
+ protected JvmTypeReference inputType;
+
+ /**
+ * The default value of the '{@link #getInputTypeFQN() <em>Input Type FQN</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputTypeFQN()
+ * @generated
+ * @ordered
+ */
+ protected static final String INPUT_TYPE_FQN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getInputTypeFQN() <em>Input Type FQN</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputTypeFQN()
+ * @generated
+ * @ordered
+ */
+ protected String inputTypeFQN = INPUT_TYPE_FQN_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFilters() <em>Filters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilters()
+ * @generated
+ * @ordered
+ */
+ protected EList<CxGridSourceEQFilter> filters;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridSourceInputImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridSourcePackage.Literals.CX_GRID_SOURCE_INPUT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmTypeReference getInputType() {
+ return inputType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputType(JvmTypeReference newInputType, NotificationChain msgs) {
+ JvmTypeReference oldInputType = inputType;
+ inputType = newInputType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE, oldInputType, newInputType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputType(JvmTypeReference newInputType) {
+ if (newInputType != inputType) {
+ NotificationChain msgs = null;
+ if (inputType != null)
+ msgs = ((InternalEObject)inputType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE, null, msgs);
+ if (newInputType != null)
+ msgs = ((InternalEObject)newInputType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE, null, msgs);
+ msgs = basicSetInputType(newInputType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE, newInputType, newInputType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInputTypeFQN() {
+ return inputTypeFQN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputTypeFQN(String newInputTypeFQN) {
+ String oldInputTypeFQN = inputTypeFQN;
+ inputTypeFQN = newInputTypeFQN;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN, oldInputTypeFQN, inputTypeFQN));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CxGridSourceEQFilter> getFilters() {
+ if (filters == null) {
+ filters = new EObjectContainmentEList<CxGridSourceEQFilter>(CxGridSourceEQFilter.class, this, CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS);
+ }
+ return filters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE:
+ return basicSetInputType(null, msgs);
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS:
+ return ((InternalEList<?>)getFilters()).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 CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE:
+ return getInputType();
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN:
+ return getInputTypeFQN();
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS:
+ return getFilters();
+ }
+ 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 CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE:
+ setInputType((JvmTypeReference)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN:
+ setInputTypeFQN((String)newValue);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS:
+ getFilters().clear();
+ getFilters().addAll((Collection<? extends CxGridSourceEQFilter>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE:
+ setInputType((JvmTypeReference)null);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN:
+ setInputTypeFQN(INPUT_TYPE_FQN_EDEFAULT);
+ return;
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS:
+ getFilters().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE:
+ return inputType != null;
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__INPUT_TYPE_FQN:
+ return INPUT_TYPE_FQN_EDEFAULT == null ? inputTypeFQN != null : !INPUT_TYPE_FQN_EDEFAULT.equals(inputTypeFQN);
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT__FILTERS:
+ return filters != null && !filters.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(" (inputTypeFQN: ");
+ result.append(inputTypeFQN);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridSourceInputImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourcePackageImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourcePackageImpl.java
new file mode 100644
index 0000000..98ade1d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/CxGridSourcePackageImpl.java
@@ -0,0 +1,509 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.impl;
+
+import java.io.IOException;
+import java.net.URL;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
+import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridSourcePackageImpl extends EPackageImpl implements CxGridSourcePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String packageFilename = "gridsource.ecore";
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridSourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridSourceInputEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridNestedFieldEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridNestedPathEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridSourceEQFilterEClass = 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.infogrid.model.gridsource.CxGridSourcePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CxGridSourcePackageImpl() {
+ super(eNS_URI, CxGridSourceFactory.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 CxGridSourcePackage#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
+ * @generated
+ */
+ public static CxGridSourcePackage init() {
+ if (isInited) return (CxGridSourcePackage)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI);
+
+ // Obtain or create and register package
+ CxGridSourcePackageImpl theCxGridSourcePackage = (CxGridSourcePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CxGridSourcePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CxGridSourcePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ TypesPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ CxGridStylePackageImpl theCxGridStylePackage = (CxGridStylePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI) instanceof CxGridStylePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI) : CxGridStylePackage.eINSTANCE);
+
+ // Load packages
+ theCxGridSourcePackage.loadPackage();
+
+ // Fix loaded packages
+ theCxGridSourcePackage.fixPackageContents();
+ theCxGridStylePackage.fixPackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCxGridSourcePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CxGridSourcePackage.eNS_URI, theCxGridSourcePackage);
+ return theCxGridSourcePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridSource() {
+ if (cxGridSourceEClass == null) {
+ cxGridSourceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI).getEClassifiers().get(0);
+ }
+ return cxGridSourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridSource_Id() {
+ return (EAttribute)getCxGridSource().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridSource_Tags() {
+ return (EAttribute)getCxGridSource().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridSource_Kind() {
+ return (EAttribute)getCxGridSource().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSource_RootType() {
+ return (EReference)getCxGridSource().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridSource_RootTypeFQN() {
+ return (EAttribute)getCxGridSource().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSource_Properties() {
+ return (EReference)getCxGridSource().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSource_Inputs() {
+ return (EReference)getCxGridSource().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridSource_SelectionEventTopic() {
+ return (EAttribute)getCxGridSource().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridSourceInput() {
+ if (cxGridSourceInputEClass == null) {
+ cxGridSourceInputEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI).getEClassifiers().get(1);
+ }
+ return cxGridSourceInputEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSourceInput_InputType() {
+ return (EReference)getCxGridSourceInput().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridSourceInput_InputTypeFQN() {
+ return (EAttribute)getCxGridSourceInput().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSourceInput_Filters() {
+ return (EReference)getCxGridSourceInput().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridProperty() {
+ if (cxGridPropertyEClass == null) {
+ cxGridPropertyEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI).getEClassifiers().get(2);
+ }
+ return cxGridPropertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridProperty_Path() {
+ return (EReference)getCxGridProperty().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridProperty_Style() {
+ return (EReference)getCxGridProperty().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridProperty_DotPath() {
+ return (EAttribute)getCxGridProperty().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridProperty_Editable() {
+ return (EAttribute)getCxGridProperty().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridNestedField() {
+ if (cxGridNestedFieldEClass == null) {
+ cxGridNestedFieldEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI).getEClassifiers().get(3);
+ }
+ return cxGridNestedFieldEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridNestedField_Field() {
+ return (EReference)getCxGridNestedField().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridNestedField_Path() {
+ return (EReference)getCxGridNestedField().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridNestedField_DotPath() {
+ return (EAttribute)getCxGridNestedField().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridNestedPath() {
+ if (cxGridNestedPathEClass == null) {
+ cxGridNestedPathEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI).getEClassifiers().get(4);
+ }
+ return cxGridNestedPathEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridNestedPath_Field() {
+ return (EReference)getCxGridNestedPath().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridNestedPath_Path() {
+ return (EReference)getCxGridNestedPath().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridNestedPath_DotPath() {
+ return (EAttribute)getCxGridNestedPath().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridSourceEQFilter() {
+ if (cxGridSourceEQFilterEClass == null) {
+ cxGridSourceEQFilterEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI).getEClassifiers().get(5);
+ }
+ return cxGridSourceEQFilterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSourceEQFilter_InputTypePropertyPath() {
+ return (EReference)getCxGridSourceEQFilter().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridSourceEQFilter_RootTypePropertyPath() {
+ return (EReference)getCxGridSourceEQFilter().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceFactory getCxGridSourceFactory() {
+ return (CxGridSourceFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isLoaded = false;
+
+ /**
+ * Laods the package and any sub-packages from their serialized form.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void loadPackage() {
+ if (isLoaded) return;
+ isLoaded = true;
+
+ URL url = getClass().getResource(packageFilename);
+ if (url == null) {
+ throw new RuntimeException("Missing serialized package: " + packageFilename);
+ }
+ URI uri = URI.createURI(url.toString());
+ Resource resource = new EcoreResourceFactoryImpl().createResource(uri);
+ try {
+ resource.load(null);
+ }
+ catch (IOException exception) {
+ throw new WrappedException(exception);
+ }
+ initializeFromLoadedEPackage(this, (EPackage)resource.getContents().get(0));
+ createResource(eNS_URI);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isFixed = false;
+
+ /**
+ * Fixes up the loaded package, to make it appear as if it had been programmatically built.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fixPackageContents() {
+ if (isFixed) return;
+ isFixed = true;
+ fixEClassifiers();
+ }
+
+ /**
+ * Sets the instance class on the given classifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void fixInstanceClass(EClassifier eClassifier) {
+ if (eClassifier.getInstanceClassName() == null) {
+ eClassifier.setInstanceClassName("org.eclipse.osbp.infogrid.model.gridsource." + eClassifier.getName());
+ setGeneratedClassName(eClassifier);
+ }
+ }
+
+} //CxGridSourcePackageImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/gridsource.ecore b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/gridsource.ecore
new file mode 100644
index 0000000..40c0c63
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/impl/gridsource.ecore
@@ -0,0 +1,131 @@
+<?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="gridsource" nsURI="http://osbp.eclipse.org/gridsource/v1/core"
+ nsPrefix="gridsource">
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridSource">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="tags" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="ecview"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rootType" eType="ecore:EClass http://www.eclipse.org/xtext/common/JavaVMTypes#//JvmTypeReference"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rootTypeFQN" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="#//CxGridProperty" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputs" upperBound="-1"
+ eType="#//CxGridSourceInput" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="selectionEventTopic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridSourceInput">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputType" eType="ecore:EClass http://www.eclipse.org/xtext/common/JavaVMTypes#//JvmTypeReference"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputTypeFQN" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="filters" upperBound="-1"
+ eType="#//CxGridSourceEQFilter" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridProperty">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="style" eType="#//style/CxGridPropStyle"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridNestedField">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="ecore:EClass http://www.eclipse.org/xtext/common/JavaVMTypes#//JvmOperation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//CxGridNestedPath"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridNestedPath">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="ecore:EClass http://www.eclipse.org/xtext/common/JavaVMTypes#//JvmOperation"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="path" eType="#//CxGridNestedPath"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridSourceEQFilter">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputTypePropertyPath"
+ eType="#//CxGridNestedField" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rootTypePropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ </eClassifiers>
+ <eSubpackages name="style" nsURI="http://osbp.eclipse.org/gridsource/v1/core/style"
+ nsPrefix="style">
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropStyle" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropHtmlStyle" eSuperTypes="#//style/CxGridPropStyle"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropTextStyle" eSuperTypes="#//style/CxGridPropStyle"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropButtonStyle" eSuperTypes="#//style/CxGridPropStyle #//style/CxGridEventTopicAble"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropProgressbarStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropSparklineStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="field" eType="#//CxGridNestedField"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropBooleanStyle" eSuperTypes="#//style/CxGridPropStyle"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropNumberStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropImageStyle" eSuperTypes="#//style/CxGridPropStyle #//style/CxGridEventTopicAble">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configs" upperBound="-1"
+ eType="#//style/CxGridStyleConfig" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropIndicatorStyle" eSuperTypes="#//style/CxGridPropStyle #//style/CxGridEventTopicAble">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="greenStarts" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="redEnds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropDateStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dateFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridStyleConfig"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridStyleConfigStringToResource"
+ eSuperTypes="#//style/CxGridStyleConfig">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="compare" eType="#//style/CxGridCompare"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceThemePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridStyleConfigNumericToResource"
+ eSuperTypes="#//style/CxGridStyleConfig">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="compare" eType="#//style/CxGridCompare"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceThemePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CxGridCompare">
+ <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="CxGridEventTopicAble" abstract="true"
+ interface="true" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventTopic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropQuantityStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="valuePropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valuePropertyDotPath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueNumberFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="uomPropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uomPropertyDotPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="htmlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="<b>{@value}</b> - <i>{@uom}</i>"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CxGridPropPriceStyle" eSuperTypes="#//style/CxGridPropStyle">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="valuePropertyPath" eType="#//CxGridNestedField"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valuePropertyDotPath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueNumberFormat" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="currencyPropertyPath"
+ eType="#//CxGridNestedField" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="currencyPropertyDotPath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="htmlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="<b>{@value}</b> - <i>{@currency}</i>"/>
+ </eClassifiers>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridCompare.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridCompare.java
new file mode 100644
index 0000000..d7fdf8f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridCompare.java
@@ -0,0 +1,326 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+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>Cx Grid Compare</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridCompare()
+ * @model
+ * @generated
+ */
+public enum CxGridCompare 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...
+ * </p>
+ * <!-- 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...
+ * </p>
+ * <!-- 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...
+ * </p>
+ * <!-- 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...
+ * </p>
+ * <!-- 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...
+ * </p>
+ * <!-- 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...
+ * </p>
+ * <!-- 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>Cx Grid Compare</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CxGridCompare[] VALUES_ARRAY =
+ new CxGridCompare[] {
+ EQUAL,
+ GREATER_THAN,
+ GREATER_EQUAL,
+ LOWER_THAN,
+ LOWER_EQUAL,
+ NOT_EQUAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Cx Grid Compare</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<CxGridCompare> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Cx Grid Compare</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CxGridCompare get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CxGridCompare result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cx Grid Compare</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CxGridCompare getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CxGridCompare result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cx Grid Compare</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CxGridCompare 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 CxGridCompare(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;
+ }
+
+} //CxGridCompare
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridEventTopicAble.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridEventTopicAble.java
new file mode 100644
index 0000000..b2a90cf
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridEventTopicAble.java
@@ -0,0 +1,59 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Event Topic Able</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble#getEventTopic <em>Event Topic</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridEventTopicAble()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface CxGridEventTopicAble extends CxGridPropStyle {
+ /**
+ * 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...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Event Topic</em>' attribute.
+ * @see #setEventTopic(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridEventTopicAble_EventTopic()
+ * @model
+ * @generated
+ */
+ String getEventTopic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble#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);
+
+} // CxGridEventTopicAble
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropBooleanStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropBooleanStyle.java
new file mode 100644
index 0000000..8190d0e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropBooleanStyle.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Boolean Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropBooleanStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropBooleanStyle extends CxGridPropStyle {
+} // CxGridPropBooleanStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropButtonStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropButtonStyle.java
new file mode 100644
index 0000000..6185c8d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropButtonStyle.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Button Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropButtonStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropButtonStyle extends CxGridPropStyle, CxGridEventTopicAble {
+} // CxGridPropButtonStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropDateStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropDateStyle.java
new file mode 100644
index 0000000..b5bf16e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropDateStyle.java
@@ -0,0 +1,59 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Date Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle#getDateFormat <em>Date Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropDateStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropDateStyle extends CxGridPropStyle {
+ /**
+ * Returns the value of the '<em><b>Date Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Date Format</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Date Format</em>' attribute.
+ * @see #setDateFormat(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropDateStyle_DateFormat()
+ * @model
+ * @generated
+ */
+ String getDateFormat();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle#getDateFormat <em>Date Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Date Format</em>' attribute.
+ * @see #getDateFormat()
+ * @generated
+ */
+ void setDateFormat(String value);
+
+} // CxGridPropDateStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropHtmlStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropHtmlStyle.java
new file mode 100644
index 0000000..d78652a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropHtmlStyle.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Html Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropHtmlStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropHtmlStyle extends CxGridPropStyle {
+} // CxGridPropHtmlStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropImageStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropImageStyle.java
new file mode 100644
index 0000000..9017d5e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropImageStyle.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Image Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle#getConfigs <em>Configs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropImageStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropImageStyle extends CxGridPropStyle, CxGridEventTopicAble {
+ /**
+ * Returns the value of the '<em><b>Configs</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configs</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>Configs</em>' containment reference list.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropImageStyle_Configs()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CxGridStyleConfig> getConfigs();
+
+} // CxGridPropImageStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropIndicatorStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropIndicatorStyle.java
new file mode 100644
index 0000000..c45aebc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropIndicatorStyle.java
@@ -0,0 +1,86 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Indicator Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getGreenStarts <em>Green Starts</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getRedEnds <em>Red Ends</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropIndicatorStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropIndicatorStyle extends CxGridPropStyle, CxGridEventTopicAble {
+ /**
+ * Returns the value of the '<em><b>Green Starts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Green Starts</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Green Starts</em>' attribute.
+ * @see #setGreenStarts(double)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropIndicatorStyle_GreenStarts()
+ * @model
+ * @generated
+ */
+ double getGreenStarts();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getGreenStarts <em>Green Starts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Green Starts</em>' attribute.
+ * @see #getGreenStarts()
+ * @generated
+ */
+ void setGreenStarts(double value);
+
+ /**
+ * Returns the value of the '<em><b>Red Ends</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Red Ends</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Red Ends</em>' attribute.
+ * @see #setRedEnds(double)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropIndicatorStyle_RedEnds()
+ * @model
+ * @generated
+ */
+ double getRedEnds();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getRedEnds <em>Red Ends</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Red Ends</em>' attribute.
+ * @see #getRedEnds()
+ * @generated
+ */
+ void setRedEnds(double value);
+
+} // CxGridPropIndicatorStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropNumberStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropNumberStyle.java
new file mode 100644
index 0000000..77a3f72
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropNumberStyle.java
@@ -0,0 +1,59 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Number Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle#getNumberFormat <em>Number Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropNumberStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropNumberStyle extends CxGridPropStyle {
+ /**
+ * Returns the value of the '<em><b>Number Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Format</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Format</em>' attribute.
+ * @see #setNumberFormat(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropNumberStyle_NumberFormat()
+ * @model
+ * @generated
+ */
+ String getNumberFormat();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle#getNumberFormat <em>Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Format</em>' attribute.
+ * @see #getNumberFormat()
+ * @generated
+ */
+ void setNumberFormat(String value);
+
+} // CxGridPropNumberStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropPriceStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropPriceStyle.java
new file mode 100644
index 0000000..bd57123
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropPriceStyle.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.infogrid.model.gridsource.style;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Price Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyPath <em>Value Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyDotPath <em>Value Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValueNumberFormat <em>Value Number Format</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyPath <em>Currency Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyDotPath <em>Currency Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getHtmlPattern <em>Html Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropPriceStyle extends CxGridPropStyle {
+ /**
+ * Returns the value of the '<em><b>Value Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value 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>Value Property Path</em>' containment reference.
+ * @see #setValuePropertyPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle_ValuePropertyPath()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getValuePropertyPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyPath <em>Value Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Property Path</em>' containment reference.
+ * @see #getValuePropertyPath()
+ * @generated
+ */
+ void setValuePropertyPath(CxGridNestedField value);
+
+ /**
+ * Returns the value of the '<em><b>Value Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value Property Dot 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>Value Property Dot Path</em>' attribute.
+ * @see #setValuePropertyDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle_ValuePropertyDotPath()
+ * @model
+ * @generated
+ */
+ String getValuePropertyDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyDotPath <em>Value Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Property Dot Path</em>' attribute.
+ * @see #getValuePropertyDotPath()
+ * @generated
+ */
+ void setValuePropertyDotPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Value Number Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value Number Format</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 Number Format</em>' attribute.
+ * @see #setValueNumberFormat(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle_ValueNumberFormat()
+ * @model
+ * @generated
+ */
+ String getValueNumberFormat();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValueNumberFormat <em>Value Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Number Format</em>' attribute.
+ * @see #getValueNumberFormat()
+ * @generated
+ */
+ void setValueNumberFormat(String value);
+
+ /**
+ * Returns the value of the '<em><b>Currency Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Currency 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>Currency Property Path</em>' containment reference.
+ * @see #setCurrencyPropertyPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle_CurrencyPropertyPath()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getCurrencyPropertyPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyPath <em>Currency Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Currency Property Path</em>' containment reference.
+ * @see #getCurrencyPropertyPath()
+ * @generated
+ */
+ void setCurrencyPropertyPath(CxGridNestedField value);
+
+ /**
+ * Returns the value of the '<em><b>Currency Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Currency Property Dot 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>Currency Property Dot Path</em>' attribute.
+ * @see #setCurrencyPropertyDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle_CurrencyPropertyDotPath()
+ * @model
+ * @generated
+ */
+ String getCurrencyPropertyDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyDotPath <em>Currency Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Currency Property Dot Path</em>' attribute.
+ * @see #getCurrencyPropertyDotPath()
+ * @generated
+ */
+ void setCurrencyPropertyDotPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Html Pattern</b></em>' attribute.
+ * The default value is <code>"<b>{@value}</b> - <i>{@currency}</i>"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Html Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Html Pattern</em>' attribute.
+ * @see #setHtmlPattern(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropPriceStyle_HtmlPattern()
+ * @model default="<b>{@value}</b> - <i>{@currency}</i>"
+ * @generated
+ */
+ String getHtmlPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getHtmlPattern <em>Html Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Html Pattern</em>' attribute.
+ * @see #getHtmlPattern()
+ * @generated
+ */
+ void setHtmlPattern(String value);
+
+} // CxGridPropPriceStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropProgressbarStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropProgressbarStyle.java
new file mode 100644
index 0000000..7eb7cd4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropProgressbarStyle.java
@@ -0,0 +1,59 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Progressbar Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle#getMaxValue <em>Max Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropProgressbarStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropProgressbarStyle extends CxGridPropStyle {
+
+ /**
+ * Returns the value of the '<em><b>Max Value</b></em>' attribute.
+ * <!-- 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...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Max Value</em>' attribute.
+ * @see #setMaxValue(double)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropProgressbarStyle_MaxValue()
+ * @model
+ * @generated
+ */
+ double getMaxValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle#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);
+} // CxGridPropProgressbarStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropQuantityStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropQuantityStyle.java
new file mode 100644
index 0000000..e42bebc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropQuantityStyle.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.infogrid.model.gridsource.style;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Quantity Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyPath <em>Value Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyDotPath <em>Value Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValueNumberFormat <em>Value Number Format</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyPath <em>Uom Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyDotPath <em>Uom Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getHtmlPattern <em>Html Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropQuantityStyle extends CxGridPropStyle {
+ /**
+ * Returns the value of the '<em><b>Value Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value 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>Value Property Path</em>' containment reference.
+ * @see #setValuePropertyPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle_ValuePropertyPath()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getValuePropertyPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyPath <em>Value Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Property Path</em>' containment reference.
+ * @see #getValuePropertyPath()
+ * @generated
+ */
+ void setValuePropertyPath(CxGridNestedField value);
+
+ /**
+ * Returns the value of the '<em><b>Value Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value Property Dot 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>Value Property Dot Path</em>' attribute.
+ * @see #setValuePropertyDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle_ValuePropertyDotPath()
+ * @model
+ * @generated
+ */
+ String getValuePropertyDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyDotPath <em>Value Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Property Dot Path</em>' attribute.
+ * @see #getValuePropertyDotPath()
+ * @generated
+ */
+ void setValuePropertyDotPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Value Number Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value Number Format</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 Number Format</em>' attribute.
+ * @see #setValueNumberFormat(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle_ValueNumberFormat()
+ * @model
+ * @generated
+ */
+ String getValueNumberFormat();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValueNumberFormat <em>Value Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Number Format</em>' attribute.
+ * @see #getValueNumberFormat()
+ * @generated
+ */
+ void setValueNumberFormat(String value);
+
+ /**
+ * Returns the value of the '<em><b>Uom Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Uom 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>Uom Property Path</em>' containment reference.
+ * @see #setUomPropertyPath(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle_UomPropertyPath()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getUomPropertyPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyPath <em>Uom Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Uom Property Path</em>' containment reference.
+ * @see #getUomPropertyPath()
+ * @generated
+ */
+ void setUomPropertyPath(CxGridNestedField value);
+
+ /**
+ * Returns the value of the '<em><b>Uom Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Uom Property Dot 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>Uom Property Dot Path</em>' attribute.
+ * @see #setUomPropertyDotPath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle_UomPropertyDotPath()
+ * @model
+ * @generated
+ */
+ String getUomPropertyDotPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyDotPath <em>Uom Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Uom Property Dot Path</em>' attribute.
+ * @see #getUomPropertyDotPath()
+ * @generated
+ */
+ void setUomPropertyDotPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Html Pattern</b></em>' attribute.
+ * The default value is <code>"<b>{@value}</b> - <i>{@uom}</i>"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Html Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Html Pattern</em>' attribute.
+ * @see #setHtmlPattern(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropQuantityStyle_HtmlPattern()
+ * @model default="<b>{@value}</b> - <i>{@uom}</i>"
+ * @generated
+ */
+ String getHtmlPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getHtmlPattern <em>Html Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Html Pattern</em>' attribute.
+ * @see #getHtmlPattern()
+ * @generated
+ */
+ void setHtmlPattern(String value);
+
+} // CxGridPropQuantityStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropSparklineStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropSparklineStyle.java
new file mode 100644
index 0000000..d30e966
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropSparklineStyle.java
@@ -0,0 +1,61 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Sparkline Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle#getField <em>Field</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropSparklineStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropSparklineStyle extends CxGridPropStyle {
+
+ /**
+ * Returns the value of the '<em><b>Field</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Field</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Field</em>' containment reference.
+ * @see #setField(CxGridNestedField)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropSparklineStyle_Field()
+ * @model containment="true"
+ * @generated
+ */
+ CxGridNestedField getField();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle#getField <em>Field</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Field</em>' containment reference.
+ * @see #getField()
+ * @generated
+ */
+ void setField(CxGridNestedField value);
+} // CxGridPropSparklineStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropStyle.java
new file mode 100644
index 0000000..e40a873
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropStyle.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.infogrid.model.gridsource.style;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropStyle()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CxGridPropStyle extends EObject {
+} // CxGridPropStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropTextStyle.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropTextStyle.java
new file mode 100644
index 0000000..66174f7
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridPropTextStyle.java
@@ -0,0 +1,27 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cx Grid Prop Text Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridPropTextStyle()
+ * @model
+ * @generated
+ */
+public interface CxGridPropTextStyle extends CxGridPropStyle {
+} // CxGridPropTextStyle
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfig.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfig.java
new file mode 100644
index 0000000..f72ee2d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfig.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.infogrid.model.gridsource.style;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Config</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfig()
+ * @model
+ * @generated
+ */
+public interface CxGridStyleConfig extends EObject {
+} // CxGridStyleConfig
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfigNumericToResource.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfigNumericToResource.java
new file mode 100644
index 0000000..b354f82
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfigNumericToResource.java
@@ -0,0 +1,116 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Config Numeric To Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getCompare <em>Compare</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getResourceThemePath <em>Resource Theme Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigNumericToResource()
+ * @model
+ * @generated
+ */
+public interface CxGridStyleConfigNumericToResource extends CxGridStyleConfig {
+ /**
+ * 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(double)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigNumericToResource_Value()
+ * @model
+ * @generated
+ */
+ double getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#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>Compare</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compare</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compare</em>' attribute.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @see #setCompare(CxGridCompare)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigNumericToResource_Compare()
+ * @model
+ * @generated
+ */
+ CxGridCompare getCompare();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getCompare <em>Compare</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compare</em>' attribute.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @see #getCompare()
+ * @generated
+ */
+ void setCompare(CxGridCompare value);
+
+ /**
+ * Returns the value of the '<em><b>Resource Theme Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Resource Theme 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>Resource Theme Path</em>' attribute.
+ * @see #setResourceThemePath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigNumericToResource_ResourceThemePath()
+ * @model
+ * @generated
+ */
+ String getResourceThemePath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getResourceThemePath <em>Resource Theme Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Resource Theme Path</em>' attribute.
+ * @see #getResourceThemePath()
+ * @generated
+ */
+ void setResourceThemePath(String value);
+
+} // CxGridStyleConfigNumericToResource
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfigStringToResource.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfigStringToResource.java
new file mode 100644
index 0000000..bba56f4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleConfigStringToResource.java
@@ -0,0 +1,116 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Config String To Resource</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getCompare <em>Compare</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getResourceThemePath <em>Resource Theme Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigStringToResource()
+ * @model
+ * @generated
+ */
+public interface CxGridStyleConfigStringToResource extends CxGridStyleConfig {
+ /**
+ * 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.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigStringToResource_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#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>Compare</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compare</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compare</em>' attribute.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @see #setCompare(CxGridCompare)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigStringToResource_Compare()
+ * @model
+ * @generated
+ */
+ CxGridCompare getCompare();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getCompare <em>Compare</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compare</em>' attribute.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @see #getCompare()
+ * @generated
+ */
+ void setCompare(CxGridCompare value);
+
+ /**
+ * Returns the value of the '<em><b>Resource Theme Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Resource Theme 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>Resource Theme Path</em>' attribute.
+ * @see #setResourceThemePath(String)
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage#getCxGridStyleConfigStringToResource_ResourceThemePath()
+ * @model
+ * @generated
+ */
+ String getResourceThemePath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getResourceThemePath <em>Resource Theme Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Resource Theme Path</em>' attribute.
+ * @see #getResourceThemePath()
+ * @generated
+ */
+ void setResourceThemePath(String value);
+
+} // CxGridStyleConfigStringToResource
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleFactory.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleFactory.java
new file mode 100644
index 0000000..1430477
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStyleFactory.java
@@ -0,0 +1,178 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+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.infogrid.model.gridsource.style.CxGridStylePackage
+ * @generated
+ */
+public interface CxGridStyleFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CxGridStyleFactory eINSTANCE = org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Html Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Html Style</em>'.
+ * @generated
+ */
+ CxGridPropHtmlStyle createCxGridPropHtmlStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Text Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Text Style</em>'.
+ * @generated
+ */
+ CxGridPropTextStyle createCxGridPropTextStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Button Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Button Style</em>'.
+ * @generated
+ */
+ CxGridPropButtonStyle createCxGridPropButtonStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Progressbar Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Progressbar Style</em>'.
+ * @generated
+ */
+ CxGridPropProgressbarStyle createCxGridPropProgressbarStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Sparkline Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Sparkline Style</em>'.
+ * @generated
+ */
+ CxGridPropSparklineStyle createCxGridPropSparklineStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Boolean Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Boolean Style</em>'.
+ * @generated
+ */
+ CxGridPropBooleanStyle createCxGridPropBooleanStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Number Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Number Style</em>'.
+ * @generated
+ */
+ CxGridPropNumberStyle createCxGridPropNumberStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Image Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Image Style</em>'.
+ * @generated
+ */
+ CxGridPropImageStyle createCxGridPropImageStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Indicator Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Indicator Style</em>'.
+ * @generated
+ */
+ CxGridPropIndicatorStyle createCxGridPropIndicatorStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Date Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Date Style</em>'.
+ * @generated
+ */
+ CxGridPropDateStyle createCxGridPropDateStyle();
+
+ /**
+ * Returns a new object of class '<em>Config</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Config</em>'.
+ * @generated
+ */
+ CxGridStyleConfig createCxGridStyleConfig();
+
+ /**
+ * Returns a new object of class '<em>Config String To Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Config String To Resource</em>'.
+ * @generated
+ */
+ CxGridStyleConfigStringToResource createCxGridStyleConfigStringToResource();
+
+ /**
+ * Returns a new object of class '<em>Config Numeric To Resource</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Config Numeric To Resource</em>'.
+ * @generated
+ */
+ CxGridStyleConfigNumericToResource createCxGridStyleConfigNumericToResource();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Quantity Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Quantity Style</em>'.
+ * @generated
+ */
+ CxGridPropQuantityStyle createCxGridPropQuantityStyle();
+
+ /**
+ * Returns a new object of class '<em>Cx Grid Prop Price Style</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cx Grid Prop Price Style</em>'.
+ * @generated
+ */
+ CxGridPropPriceStyle createCxGridPropPriceStyle();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CxGridStylePackage getCxGridStylePackage();
+
+} //CxGridStyleFactory
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStylePackage.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStylePackage.java
new file mode 100644
index 0000000..ada0763
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/CxGridStylePackage.java
@@ -0,0 +1,1546 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style;
+
+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;
+
+/**
+ * <!-- 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.infogrid.model.gridsource.style.CxGridStyleFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CxGridStylePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "style";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://osbp.eclipse.org/gridsource/v1/core/style";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "style";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CxGridStylePackage eINSTANCE = org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropStyleImpl <em>Cx Grid Prop Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_STYLE = 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_STYLE_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropHtmlStyleImpl <em>Cx Grid Prop Html Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropHtmlStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropHtmlStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_HTML_STYLE = 1;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Html Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_HTML_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropTextStyleImpl <em>Cx Grid Prop Text Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropTextStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropTextStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_TEXT_STYLE = 2;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Text Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_TEXT_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropButtonStyleImpl <em>Cx Grid Prop Button Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropButtonStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropButtonStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_BUTTON_STYLE = 3;
+
+ /**
+ * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Button Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_BUTTON_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropProgressbarStyleImpl <em>Cx Grid Prop Progressbar Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropProgressbarStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropProgressbarStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_PROGRESSBAR_STYLE = 4;
+
+ /**
+ * The feature id for the '<em><b>Max Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Progressbar Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PROGRESSBAR_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropSparklineStyleImpl <em>Cx Grid Prop Sparkline Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropSparklineStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropSparklineStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_SPARKLINE_STYLE = 5;
+
+ /**
+ * The feature id for the '<em><b>Field</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_SPARKLINE_STYLE__FIELD = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Sparkline Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_SPARKLINE_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropBooleanStyleImpl <em>Cx Grid Prop Boolean Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropBooleanStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropBooleanStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_BOOLEAN_STYLE = 6;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Boolean Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_BOOLEAN_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropNumberStyleImpl <em>Cx Grid Prop Number Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropNumberStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropNumberStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_NUMBER_STYLE = 7;
+
+ /**
+ * The feature id for the '<em><b>Number Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Number Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_NUMBER_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropImageStyleImpl <em>Cx Grid Prop Image Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropImageStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropImageStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_IMAGE_STYLE = 8;
+
+ /**
+ * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Configs</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_IMAGE_STYLE__CONFIGS = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Image Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_IMAGE_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl <em>Cx Grid Prop Indicator Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropIndicatorStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_INDICATOR_STYLE = 9;
+
+ /**
+ * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Green Starts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Red Ends</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS = CX_GRID_PROP_STYLE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Indicator Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_INDICATOR_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropDateStyleImpl <em>Cx Grid Prop Date Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropDateStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropDateStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_DATE_STYLE = 10;
+
+ /**
+ * The feature id for the '<em><b>Date Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_DATE_STYLE__DATE_FORMAT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Date Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_DATE_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigImpl <em>Config</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridStyleConfig()
+ * @generated
+ */
+ int CX_GRID_STYLE_CONFIG = 11;
+
+ /**
+ * The number of structural features of the '<em>Config</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl <em>Config String To Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridStyleConfigStringToResource()
+ * @generated
+ */
+ int CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE = 12;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Compare</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Resource Theme Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Config String To Resource</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE_FEATURE_COUNT = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl <em>Config Numeric To Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridStyleConfigNumericToResource()
+ * @generated
+ */
+ int CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE = 13;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Compare</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Resource Theme Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Config Numeric To Resource</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE_FEATURE_COUNT = CX_GRID_STYLE_CONFIG_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble <em>Cx Grid Event Topic Able</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridEventTopicAble()
+ * @generated
+ */
+ int CX_GRID_EVENT_TOPIC_ABLE = 14;
+
+ /**
+ * The feature id for the '<em><b>Event Topic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Event Topic Able</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_EVENT_TOPIC_ABLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl <em>Cx Grid Prop Quantity Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropQuantityStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE = 15;
+
+ /**
+ * The feature id for the '<em><b>Value Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Value Number Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Uom Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Uom Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Html Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN = CX_GRID_PROP_STYLE_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Quantity Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_QUANTITY_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl <em>Cx Grid Prop Price Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropPriceStyle()
+ * @generated
+ */
+ int CX_GRID_PROP_PRICE_STYLE = 16;
+
+ /**
+ * The feature id for the '<em><b>Value Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Value Number Format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Currency Property Path</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Currency Property Dot Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH = CX_GRID_PROP_STYLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Html Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN = CX_GRID_PROP_STYLE_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Cx Grid Prop Price Style</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CX_GRID_PROP_PRICE_STYLE_FEATURE_COUNT = CX_GRID_PROP_STYLE_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare <em>Cx Grid Compare</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridCompare()
+ * @generated
+ */
+ int CX_GRID_COMPARE = 17;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle <em>Cx Grid Prop Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle
+ * @generated
+ */
+ EClass getCxGridPropStyle();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle <em>Cx Grid Prop Html Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Html Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle
+ * @generated
+ */
+ EClass getCxGridPropHtmlStyle();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle <em>Cx Grid Prop Text Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Text Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle
+ * @generated
+ */
+ EClass getCxGridPropTextStyle();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle <em>Cx Grid Prop Button Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Button Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle
+ * @generated
+ */
+ EClass getCxGridPropButtonStyle();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle <em>Cx Grid Prop Progressbar Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Progressbar Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle
+ * @generated
+ */
+ EClass getCxGridPropProgressbarStyle();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle#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.infogrid.model.gridsource.style.CxGridPropProgressbarStyle#getMaxValue()
+ * @see #getCxGridPropProgressbarStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropProgressbarStyle_MaxValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle <em>Cx Grid Prop Sparkline Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Sparkline Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle
+ * @generated
+ */
+ EClass getCxGridPropSparklineStyle();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle#getField <em>Field</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Field</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle#getField()
+ * @see #getCxGridPropSparklineStyle()
+ * @generated
+ */
+ EReference getCxGridPropSparklineStyle_Field();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle <em>Cx Grid Prop Boolean Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Boolean Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle
+ * @generated
+ */
+ EClass getCxGridPropBooleanStyle();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle <em>Cx Grid Prop Number Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Number Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle
+ * @generated
+ */
+ EClass getCxGridPropNumberStyle();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle#getNumberFormat <em>Number Format</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Format</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle#getNumberFormat()
+ * @see #getCxGridPropNumberStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropNumberStyle_NumberFormat();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle <em>Cx Grid Prop Image Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Image Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle
+ * @generated
+ */
+ EClass getCxGridPropImageStyle();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle#getConfigs <em>Configs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Configs</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle#getConfigs()
+ * @see #getCxGridPropImageStyle()
+ * @generated
+ */
+ EReference getCxGridPropImageStyle_Configs();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle <em>Cx Grid Prop Indicator Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Indicator Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle
+ * @generated
+ */
+ EClass getCxGridPropIndicatorStyle();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getGreenStarts <em>Green Starts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Green Starts</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getGreenStarts()
+ * @see #getCxGridPropIndicatorStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropIndicatorStyle_GreenStarts();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getRedEnds <em>Red Ends</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Red Ends</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle#getRedEnds()
+ * @see #getCxGridPropIndicatorStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropIndicatorStyle_RedEnds();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle <em>Cx Grid Prop Date Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Date Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle
+ * @generated
+ */
+ EClass getCxGridPropDateStyle();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle#getDateFormat <em>Date Format</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Date Format</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle#getDateFormat()
+ * @see #getCxGridPropDateStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropDateStyle_DateFormat();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig <em>Config</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Config</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig
+ * @generated
+ */
+ EClass getCxGridStyleConfig();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource <em>Config String To Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Config String To Resource</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource
+ * @generated
+ */
+ EClass getCxGridStyleConfigStringToResource();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getValue()
+ * @see #getCxGridStyleConfigStringToResource()
+ * @generated
+ */
+ EAttribute getCxGridStyleConfigStringToResource_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getCompare <em>Compare</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Compare</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getCompare()
+ * @see #getCxGridStyleConfigStringToResource()
+ * @generated
+ */
+ EAttribute getCxGridStyleConfigStringToResource_Compare();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getResourceThemePath <em>Resource Theme Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Resource Theme Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource#getResourceThemePath()
+ * @see #getCxGridStyleConfigStringToResource()
+ * @generated
+ */
+ EAttribute getCxGridStyleConfigStringToResource_ResourceThemePath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource <em>Config Numeric To Resource</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Config Numeric To Resource</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource
+ * @generated
+ */
+ EClass getCxGridStyleConfigNumericToResource();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getValue()
+ * @see #getCxGridStyleConfigNumericToResource()
+ * @generated
+ */
+ EAttribute getCxGridStyleConfigNumericToResource_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getCompare <em>Compare</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Compare</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getCompare()
+ * @see #getCxGridStyleConfigNumericToResource()
+ * @generated
+ */
+ EAttribute getCxGridStyleConfigNumericToResource_Compare();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getResourceThemePath <em>Resource Theme Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Resource Theme Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource#getResourceThemePath()
+ * @see #getCxGridStyleConfigNumericToResource()
+ * @generated
+ */
+ EAttribute getCxGridStyleConfigNumericToResource_ResourceThemePath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble <em>Cx Grid Event Topic Able</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Event Topic Able</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble
+ * @generated
+ */
+ EClass getCxGridEventTopicAble();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble#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.infogrid.model.gridsource.style.CxGridEventTopicAble#getEventTopic()
+ * @see #getCxGridEventTopicAble()
+ * @generated
+ */
+ EAttribute getCxGridEventTopicAble_EventTopic();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle <em>Cx Grid Prop Quantity Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Quantity Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle
+ * @generated
+ */
+ EClass getCxGridPropQuantityStyle();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyPath <em>Value Property Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Value Property Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyPath()
+ * @see #getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EReference getCxGridPropQuantityStyle_ValuePropertyPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyDotPath <em>Value Property Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value Property Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValuePropertyDotPath()
+ * @see #getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropQuantityStyle_ValuePropertyDotPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValueNumberFormat <em>Value Number Format</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value Number Format</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getValueNumberFormat()
+ * @see #getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropQuantityStyle_ValueNumberFormat();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyPath <em>Uom Property Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Uom Property Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyPath()
+ * @see #getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EReference getCxGridPropQuantityStyle_UomPropertyPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyDotPath <em>Uom Property Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Uom Property Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getUomPropertyDotPath()
+ * @see #getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropQuantityStyle_UomPropertyDotPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getHtmlPattern <em>Html Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Html Pattern</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle#getHtmlPattern()
+ * @see #getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropQuantityStyle_HtmlPattern();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle <em>Cx Grid Prop Price Style</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cx Grid Prop Price Style</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle
+ * @generated
+ */
+ EClass getCxGridPropPriceStyle();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyPath <em>Value Property Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Value Property Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyPath()
+ * @see #getCxGridPropPriceStyle()
+ * @generated
+ */
+ EReference getCxGridPropPriceStyle_ValuePropertyPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyDotPath <em>Value Property Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value Property Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValuePropertyDotPath()
+ * @see #getCxGridPropPriceStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropPriceStyle_ValuePropertyDotPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValueNumberFormat <em>Value Number Format</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value Number Format</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getValueNumberFormat()
+ * @see #getCxGridPropPriceStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropPriceStyle_ValueNumberFormat();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyPath <em>Currency Property Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Currency Property Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyPath()
+ * @see #getCxGridPropPriceStyle()
+ * @generated
+ */
+ EReference getCxGridPropPriceStyle_CurrencyPropertyPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyDotPath <em>Currency Property Dot Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Currency Property Dot Path</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getCurrencyPropertyDotPath()
+ * @see #getCxGridPropPriceStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropPriceStyle_CurrencyPropertyDotPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getHtmlPattern <em>Html Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Html Pattern</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle#getHtmlPattern()
+ * @see #getCxGridPropPriceStyle()
+ * @generated
+ */
+ EAttribute getCxGridPropPriceStyle_HtmlPattern();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare <em>Cx Grid Compare</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cx Grid Compare</em>'.
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @generated
+ */
+ EEnum getCxGridCompare();
+
+ /**
+ * 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
+ */
+ CxGridStyleFactory getCxGridStyleFactory();
+
+ /**
+ * <!-- 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.infogrid.model.gridsource.style.impl.CxGridPropStyleImpl <em>Cx Grid Prop Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_STYLE = eINSTANCE.getCxGridPropStyle();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropHtmlStyleImpl <em>Cx Grid Prop Html Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropHtmlStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropHtmlStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_HTML_STYLE = eINSTANCE.getCxGridPropHtmlStyle();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropTextStyleImpl <em>Cx Grid Prop Text Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropTextStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropTextStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_TEXT_STYLE = eINSTANCE.getCxGridPropTextStyle();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropButtonStyleImpl <em>Cx Grid Prop Button Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropButtonStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropButtonStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_BUTTON_STYLE = eINSTANCE.getCxGridPropButtonStyle();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropProgressbarStyleImpl <em>Cx Grid Prop Progressbar Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropProgressbarStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropProgressbarStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_PROGRESSBAR_STYLE = eINSTANCE.getCxGridPropProgressbarStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Max Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE = eINSTANCE.getCxGridPropProgressbarStyle_MaxValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropSparklineStyleImpl <em>Cx Grid Prop Sparkline Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropSparklineStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropSparklineStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_SPARKLINE_STYLE = eINSTANCE.getCxGridPropSparklineStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Field</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROP_SPARKLINE_STYLE__FIELD = eINSTANCE.getCxGridPropSparklineStyle_Field();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropBooleanStyleImpl <em>Cx Grid Prop Boolean Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropBooleanStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropBooleanStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_BOOLEAN_STYLE = eINSTANCE.getCxGridPropBooleanStyle();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropNumberStyleImpl <em>Cx Grid Prop Number Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropNumberStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropNumberStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_NUMBER_STYLE = eINSTANCE.getCxGridPropNumberStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Number Format</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT = eINSTANCE.getCxGridPropNumberStyle_NumberFormat();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropImageStyleImpl <em>Cx Grid Prop Image Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropImageStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropImageStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_IMAGE_STYLE = eINSTANCE.getCxGridPropImageStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Configs</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROP_IMAGE_STYLE__CONFIGS = eINSTANCE.getCxGridPropImageStyle_Configs();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl <em>Cx Grid Prop Indicator Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropIndicatorStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_INDICATOR_STYLE = eINSTANCE.getCxGridPropIndicatorStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Green Starts</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS = eINSTANCE.getCxGridPropIndicatorStyle_GreenStarts();
+
+ /**
+ * The meta object literal for the '<em><b>Red Ends</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS = eINSTANCE.getCxGridPropIndicatorStyle_RedEnds();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropDateStyleImpl <em>Cx Grid Prop Date Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropDateStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropDateStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_DATE_STYLE = eINSTANCE.getCxGridPropDateStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Date Format</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_DATE_STYLE__DATE_FORMAT = eINSTANCE.getCxGridPropDateStyle_DateFormat();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigImpl <em>Config</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridStyleConfig()
+ * @generated
+ */
+ EClass CX_GRID_STYLE_CONFIG = eINSTANCE.getCxGridStyleConfig();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl <em>Config String To Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridStyleConfigStringToResource()
+ * @generated
+ */
+ EClass CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE = eINSTANCE.getCxGridStyleConfigStringToResource();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE = eINSTANCE.getCxGridStyleConfigStringToResource_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Compare</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE = eINSTANCE.getCxGridStyleConfigStringToResource_Compare();
+
+ /**
+ * The meta object literal for the '<em><b>Resource Theme Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH = eINSTANCE.getCxGridStyleConfigStringToResource_ResourceThemePath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl <em>Config Numeric To Resource</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridStyleConfigNumericToResource()
+ * @generated
+ */
+ EClass CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE = eINSTANCE.getCxGridStyleConfigNumericToResource();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE = eINSTANCE.getCxGridStyleConfigNumericToResource_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Compare</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE = eINSTANCE.getCxGridStyleConfigNumericToResource_Compare();
+
+ /**
+ * The meta object literal for the '<em><b>Resource Theme Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH = eINSTANCE.getCxGridStyleConfigNumericToResource_ResourceThemePath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble <em>Cx Grid Event Topic Able</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridEventTopicAble()
+ * @generated
+ */
+ EClass CX_GRID_EVENT_TOPIC_ABLE = eINSTANCE.getCxGridEventTopicAble();
+
+ /**
+ * The meta object literal for the '<em><b>Event Topic</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC = eINSTANCE.getCxGridEventTopicAble_EventTopic();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl <em>Cx Grid Prop Quantity Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropQuantityStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_QUANTITY_STYLE = eINSTANCE.getCxGridPropQuantityStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Value Property Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH = eINSTANCE.getCxGridPropQuantityStyle_ValuePropertyPath();
+
+ /**
+ * The meta object literal for the '<em><b>Value Property Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH = eINSTANCE.getCxGridPropQuantityStyle_ValuePropertyDotPath();
+
+ /**
+ * The meta object literal for the '<em><b>Value Number Format</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT = eINSTANCE.getCxGridPropQuantityStyle_ValueNumberFormat();
+
+ /**
+ * The meta object literal for the '<em><b>Uom Property Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH = eINSTANCE.getCxGridPropQuantityStyle_UomPropertyPath();
+
+ /**
+ * The meta object literal for the '<em><b>Uom Property Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH = eINSTANCE.getCxGridPropQuantityStyle_UomPropertyDotPath();
+
+ /**
+ * The meta object literal for the '<em><b>Html Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN = eINSTANCE.getCxGridPropQuantityStyle_HtmlPattern();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl <em>Cx Grid Prop Price Style</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridPropPriceStyle()
+ * @generated
+ */
+ EClass CX_GRID_PROP_PRICE_STYLE = eINSTANCE.getCxGridPropPriceStyle();
+
+ /**
+ * The meta object literal for the '<em><b>Value Property Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH = eINSTANCE.getCxGridPropPriceStyle_ValuePropertyPath();
+
+ /**
+ * The meta object literal for the '<em><b>Value Property Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH = eINSTANCE.getCxGridPropPriceStyle_ValuePropertyDotPath();
+
+ /**
+ * The meta object literal for the '<em><b>Value Number Format</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT = eINSTANCE.getCxGridPropPriceStyle_ValueNumberFormat();
+
+ /**
+ * The meta object literal for the '<em><b>Currency Property Path</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH = eINSTANCE.getCxGridPropPriceStyle_CurrencyPropertyPath();
+
+ /**
+ * The meta object literal for the '<em><b>Currency Property Dot Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH = eINSTANCE.getCxGridPropPriceStyle_CurrencyPropertyDotPath();
+
+ /**
+ * The meta object literal for the '<em><b>Html Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN = eINSTANCE.getCxGridPropPriceStyle_HtmlPattern();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare <em>Cx Grid Compare</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.CxGridCompare
+ * @see org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStylePackageImpl#getCxGridCompare()
+ * @generated
+ */
+ EEnum CX_GRID_COMPARE = eINSTANCE.getCxGridCompare();
+
+ }
+
+} //CxGridStylePackage
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropBooleanStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropBooleanStyleImpl.java
new file mode 100644
index 0000000..9590860
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropBooleanStyleImpl.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Boolean Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropBooleanStyleImpl extends CxGridPropStyleImpl implements CxGridPropBooleanStyle {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropBooleanStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_BOOLEAN_STYLE;
+ }
+
+} //CxGridPropBooleanStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropButtonStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropButtonStyleImpl.java
new file mode 100644
index 0000000..6499fd6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropButtonStyleImpl.java
@@ -0,0 +1,202 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridEventTopicAble;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Button Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropButtonStyleImpl#getEventTopic <em>Event Topic</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropButtonStyleImpl extends CxGridPropStyleImpl implements CxGridPropButtonStyle {
+ /**
+ * 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;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropButtonStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_BUTTON_STYLE;
+ }
+
+ /**
+ * <!-- 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, CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC, oldEventTopic, eventTopic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC:
+ return getEventTopic();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC:
+ setEventTopic((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC:
+ setEventTopic(EVENT_TOPIC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC:
+ return EVENT_TOPIC_EDEFAULT == null ? eventTopic != null : !EVENT_TOPIC_EDEFAULT.equals(eventTopic);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == CxGridEventTopicAble.class) {
+ switch (derivedFeatureID) {
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC: return CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC;
+ 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 == CxGridEventTopicAble.class) {
+ switch (baseFeatureID) {
+ case CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC: return CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE__EVENT_TOPIC;
+ 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(" (eventTopic: ");
+ result.append(eventTopic);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropButtonStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropDateStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropDateStyleImpl.java
new file mode 100644
index 0000000..1d99dd0
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropDateStyleImpl.java
@@ -0,0 +1,172 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropDateStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Date Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropDateStyleImpl#getDateFormat <em>Date Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropDateStyleImpl extends CxGridPropStyleImpl implements CxGridPropDateStyle {
+ /**
+ * The default value of the '{@link #getDateFormat() <em>Date Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDateFormat()
+ * @generated
+ * @ordered
+ */
+ protected static final String DATE_FORMAT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDateFormat() <em>Date Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDateFormat()
+ * @generated
+ * @ordered
+ */
+ protected String dateFormat = DATE_FORMAT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropDateStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_DATE_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDateFormat() {
+ return dateFormat;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDateFormat(String newDateFormat) {
+ String oldDateFormat = dateFormat;
+ dateFormat = newDateFormat;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT, oldDateFormat, dateFormat));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT:
+ return getDateFormat();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT:
+ setDateFormat((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT:
+ setDateFormat(DATE_FORMAT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE__DATE_FORMAT:
+ return DATE_FORMAT_EDEFAULT == null ? dateFormat != null : !DATE_FORMAT_EDEFAULT.equals(dateFormat);
+ }
+ 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(" (dateFormat: ");
+ result.append(dateFormat);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropDateStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropHtmlStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropHtmlStyleImpl.java
new file mode 100644
index 0000000..57a9855
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropHtmlStyleImpl.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Html Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropHtmlStyleImpl extends CxGridPropStyleImpl implements CxGridPropHtmlStyle {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropHtmlStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_HTML_STYLE;
+ }
+
+} //CxGridPropHtmlStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropImageStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropImageStyleImpl.java
new file mode 100644
index 0000000..1367e0d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropImageStyleImpl.java
@@ -0,0 +1,261 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridEventTopicAble;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Image Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropImageStyleImpl#getEventTopic <em>Event Topic</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropImageStyleImpl#getConfigs <em>Configs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropImageStyleImpl extends CxGridPropStyleImpl implements CxGridPropImageStyle {
+ /**
+ * 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 cached value of the '{@link #getConfigs() <em>Configs</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConfigs()
+ * @generated
+ * @ordered
+ */
+ protected EList<CxGridStyleConfig> configs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropImageStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_IMAGE_STYLE;
+ }
+
+ /**
+ * <!-- 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, CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC, oldEventTopic, eventTopic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CxGridStyleConfig> getConfigs() {
+ if (configs == null) {
+ configs = new EObjectContainmentEList<CxGridStyleConfig>(CxGridStyleConfig.class, this, CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS);
+ }
+ return configs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS:
+ return ((InternalEList<?>)getConfigs()).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 CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC:
+ return getEventTopic();
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS:
+ return getConfigs();
+ }
+ 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 CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC:
+ setEventTopic((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS:
+ getConfigs().clear();
+ getConfigs().addAll((Collection<? extends CxGridStyleConfig>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC:
+ setEventTopic(EVENT_TOPIC_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS:
+ getConfigs().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC:
+ return EVENT_TOPIC_EDEFAULT == null ? eventTopic != null : !EVENT_TOPIC_EDEFAULT.equals(eventTopic);
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__CONFIGS:
+ return configs != null && !configs.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == CxGridEventTopicAble.class) {
+ switch (derivedFeatureID) {
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC: return CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC;
+ 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 == CxGridEventTopicAble.class) {
+ switch (baseFeatureID) {
+ case CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC: return CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE__EVENT_TOPIC;
+ 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(" (eventTopic: ");
+ result.append(eventTopic);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropImageStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropIndicatorStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropIndicatorStyleImpl.java
new file mode 100644
index 0000000..e868728
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropIndicatorStyleImpl.java
@@ -0,0 +1,313 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridEventTopicAble;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Indicator Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl#getEventTopic <em>Event Topic</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl#getGreenStarts <em>Green Starts</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropIndicatorStyleImpl#getRedEnds <em>Red Ends</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropIndicatorStyleImpl extends CxGridPropStyleImpl implements CxGridPropIndicatorStyle {
+ /**
+ * 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 #getGreenStarts() <em>Green Starts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGreenStarts()
+ * @generated
+ * @ordered
+ */
+ protected static final double GREEN_STARTS_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getGreenStarts() <em>Green Starts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGreenStarts()
+ * @generated
+ * @ordered
+ */
+ protected double greenStarts = GREEN_STARTS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRedEnds() <em>Red Ends</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRedEnds()
+ * @generated
+ * @ordered
+ */
+ protected static final double RED_ENDS_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getRedEnds() <em>Red Ends</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRedEnds()
+ * @generated
+ * @ordered
+ */
+ protected double redEnds = RED_ENDS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropIndicatorStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_INDICATOR_STYLE;
+ }
+
+ /**
+ * <!-- 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, CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC, oldEventTopic, eventTopic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getGreenStarts() {
+ return greenStarts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGreenStarts(double newGreenStarts) {
+ double oldGreenStarts = greenStarts;
+ greenStarts = newGreenStarts;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS, oldGreenStarts, greenStarts));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getRedEnds() {
+ return redEnds;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRedEnds(double newRedEnds) {
+ double oldRedEnds = redEnds;
+ redEnds = newRedEnds;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS, oldRedEnds, redEnds));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC:
+ return getEventTopic();
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS:
+ return getGreenStarts();
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS:
+ return getRedEnds();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC:
+ setEventTopic((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS:
+ setGreenStarts((Double)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS:
+ setRedEnds((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC:
+ setEventTopic(EVENT_TOPIC_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS:
+ setGreenStarts(GREEN_STARTS_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS:
+ setRedEnds(RED_ENDS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC:
+ return EVENT_TOPIC_EDEFAULT == null ? eventTopic != null : !EVENT_TOPIC_EDEFAULT.equals(eventTopic);
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__GREEN_STARTS:
+ return greenStarts != GREEN_STARTS_EDEFAULT;
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__RED_ENDS:
+ return redEnds != RED_ENDS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == CxGridEventTopicAble.class) {
+ switch (derivedFeatureID) {
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC: return CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC;
+ 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 == CxGridEventTopicAble.class) {
+ switch (baseFeatureID) {
+ case CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE__EVENT_TOPIC: return CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE__EVENT_TOPIC;
+ 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(" (eventTopic: ");
+ result.append(eventTopic);
+ result.append(", greenStarts: ");
+ result.append(greenStarts);
+ result.append(", redEnds: ");
+ result.append(redEnds);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropIndicatorStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropNumberStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropNumberStyleImpl.java
new file mode 100644
index 0000000..9f04d3d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropNumberStyleImpl.java
@@ -0,0 +1,172 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropNumberStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Number Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropNumberStyleImpl#getNumberFormat <em>Number Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropNumberStyleImpl extends CxGridPropStyleImpl implements CxGridPropNumberStyle {
+ /**
+ * The default value of the '{@link #getNumberFormat() <em>Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberFormat()
+ * @generated
+ * @ordered
+ */
+ protected static final String NUMBER_FORMAT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNumberFormat() <em>Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberFormat()
+ * @generated
+ * @ordered
+ */
+ protected String numberFormat = NUMBER_FORMAT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropNumberStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_NUMBER_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNumberFormat() {
+ return numberFormat;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberFormat(String newNumberFormat) {
+ String oldNumberFormat = numberFormat;
+ numberFormat = newNumberFormat;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT, oldNumberFormat, numberFormat));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT:
+ return getNumberFormat();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT:
+ setNumberFormat((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT:
+ setNumberFormat(NUMBER_FORMAT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE__NUMBER_FORMAT:
+ return NUMBER_FORMAT_EDEFAULT == null ? numberFormat != null : !NUMBER_FORMAT_EDEFAULT.equals(numberFormat);
+ }
+ 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(" (numberFormat: ");
+ result.append(numberFormat);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropNumberStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropPriceStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropPriceStyleImpl.java
new file mode 100644
index 0000000..8963380
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropPriceStyleImpl.java
@@ -0,0 +1,481 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Price Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl#getValuePropertyPath <em>Value Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl#getValuePropertyDotPath <em>Value Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl#getValueNumberFormat <em>Value Number Format</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl#getCurrencyPropertyPath <em>Currency Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl#getCurrencyPropertyDotPath <em>Currency Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropPriceStyleImpl#getHtmlPattern <em>Html Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropPriceStyleImpl extends CxGridPropStyleImpl implements CxGridPropPriceStyle {
+ /**
+ * The cached value of the '{@link #getValuePropertyPath() <em>Value Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValuePropertyPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField valuePropertyPath;
+
+ /**
+ * The default value of the '{@link #getValuePropertyDotPath() <em>Value Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValuePropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_PROPERTY_DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValuePropertyDotPath() <em>Value Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValuePropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String valuePropertyDotPath = VALUE_PROPERTY_DOT_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValueNumberFormat() <em>Value Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValueNumberFormat()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_NUMBER_FORMAT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValueNumberFormat() <em>Value Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValueNumberFormat()
+ * @generated
+ * @ordered
+ */
+ protected String valueNumberFormat = VALUE_NUMBER_FORMAT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCurrencyPropertyPath() <em>Currency Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrencyPropertyPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField currencyPropertyPath;
+
+ /**
+ * The default value of the '{@link #getCurrencyPropertyDotPath() <em>Currency Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrencyPropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String CURRENCY_PROPERTY_DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCurrencyPropertyDotPath() <em>Currency Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrencyPropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String currencyPropertyDotPath = CURRENCY_PROPERTY_DOT_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHtmlPattern() <em>Html Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHtmlPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String HTML_PATTERN_EDEFAULT = "<b>{@value}</b> - <i>{@currency}</i>";
+
+ /**
+ * The cached value of the '{@link #getHtmlPattern() <em>Html Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHtmlPattern()
+ * @generated
+ * @ordered
+ */
+ protected String htmlPattern = HTML_PATTERN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropPriceStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_PRICE_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getValuePropertyPath() {
+ return valuePropertyPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetValuePropertyPath(CxGridNestedField newValuePropertyPath, NotificationChain msgs) {
+ CxGridNestedField oldValuePropertyPath = valuePropertyPath;
+ valuePropertyPath = newValuePropertyPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH, oldValuePropertyPath, newValuePropertyPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValuePropertyPath(CxGridNestedField newValuePropertyPath) {
+ if (newValuePropertyPath != valuePropertyPath) {
+ NotificationChain msgs = null;
+ if (valuePropertyPath != null)
+ msgs = ((InternalEObject)valuePropertyPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH, null, msgs);
+ if (newValuePropertyPath != null)
+ msgs = ((InternalEObject)newValuePropertyPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH, null, msgs);
+ msgs = basicSetValuePropertyPath(newValuePropertyPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH, newValuePropertyPath, newValuePropertyPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValuePropertyDotPath() {
+ return valuePropertyDotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValuePropertyDotPath(String newValuePropertyDotPath) {
+ String oldValuePropertyDotPath = valuePropertyDotPath;
+ valuePropertyDotPath = newValuePropertyDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH, oldValuePropertyDotPath, valuePropertyDotPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValueNumberFormat() {
+ return valueNumberFormat;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValueNumberFormat(String newValueNumberFormat) {
+ String oldValueNumberFormat = valueNumberFormat;
+ valueNumberFormat = newValueNumberFormat;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT, oldValueNumberFormat, valueNumberFormat));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getCurrencyPropertyPath() {
+ return currencyPropertyPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCurrencyPropertyPath(CxGridNestedField newCurrencyPropertyPath, NotificationChain msgs) {
+ CxGridNestedField oldCurrencyPropertyPath = currencyPropertyPath;
+ currencyPropertyPath = newCurrencyPropertyPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH, oldCurrencyPropertyPath, newCurrencyPropertyPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrencyPropertyPath(CxGridNestedField newCurrencyPropertyPath) {
+ if (newCurrencyPropertyPath != currencyPropertyPath) {
+ NotificationChain msgs = null;
+ if (currencyPropertyPath != null)
+ msgs = ((InternalEObject)currencyPropertyPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH, null, msgs);
+ if (newCurrencyPropertyPath != null)
+ msgs = ((InternalEObject)newCurrencyPropertyPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH, null, msgs);
+ msgs = basicSetCurrencyPropertyPath(newCurrencyPropertyPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH, newCurrencyPropertyPath, newCurrencyPropertyPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCurrencyPropertyDotPath() {
+ return currencyPropertyDotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrencyPropertyDotPath(String newCurrencyPropertyDotPath) {
+ String oldCurrencyPropertyDotPath = currencyPropertyDotPath;
+ currencyPropertyDotPath = newCurrencyPropertyDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH, oldCurrencyPropertyDotPath, currencyPropertyDotPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getHtmlPattern() {
+ return htmlPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHtmlPattern(String newHtmlPattern) {
+ String oldHtmlPattern = htmlPattern;
+ htmlPattern = newHtmlPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN, oldHtmlPattern, htmlPattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH:
+ return basicSetValuePropertyPath(null, msgs);
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH:
+ return basicSetCurrencyPropertyPath(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 CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH:
+ return getValuePropertyPath();
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH:
+ return getValuePropertyDotPath();
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT:
+ return getValueNumberFormat();
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH:
+ return getCurrencyPropertyPath();
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH:
+ return getCurrencyPropertyDotPath();
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN:
+ return getHtmlPattern();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH:
+ setValuePropertyPath((CxGridNestedField)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH:
+ setValuePropertyDotPath((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT:
+ setValueNumberFormat((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH:
+ setCurrencyPropertyPath((CxGridNestedField)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH:
+ setCurrencyPropertyDotPath((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN:
+ setHtmlPattern((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH:
+ setValuePropertyPath((CxGridNestedField)null);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH:
+ setValuePropertyDotPath(VALUE_PROPERTY_DOT_PATH_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT:
+ setValueNumberFormat(VALUE_NUMBER_FORMAT_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH:
+ setCurrencyPropertyPath((CxGridNestedField)null);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH:
+ setCurrencyPropertyDotPath(CURRENCY_PROPERTY_DOT_PATH_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN:
+ setHtmlPattern(HTML_PATTERN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_PATH:
+ return valuePropertyPath != null;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_PROPERTY_DOT_PATH:
+ return VALUE_PROPERTY_DOT_PATH_EDEFAULT == null ? valuePropertyDotPath != null : !VALUE_PROPERTY_DOT_PATH_EDEFAULT.equals(valuePropertyDotPath);
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__VALUE_NUMBER_FORMAT:
+ return VALUE_NUMBER_FORMAT_EDEFAULT == null ? valueNumberFormat != null : !VALUE_NUMBER_FORMAT_EDEFAULT.equals(valueNumberFormat);
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_PATH:
+ return currencyPropertyPath != null;
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__CURRENCY_PROPERTY_DOT_PATH:
+ return CURRENCY_PROPERTY_DOT_PATH_EDEFAULT == null ? currencyPropertyDotPath != null : !CURRENCY_PROPERTY_DOT_PATH_EDEFAULT.equals(currencyPropertyDotPath);
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE__HTML_PATTERN:
+ return HTML_PATTERN_EDEFAULT == null ? htmlPattern != null : !HTML_PATTERN_EDEFAULT.equals(htmlPattern);
+ }
+ 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(" (valuePropertyDotPath: ");
+ result.append(valuePropertyDotPath);
+ result.append(", valueNumberFormat: ");
+ result.append(valueNumberFormat);
+ result.append(", currencyPropertyDotPath: ");
+ result.append(currencyPropertyDotPath);
+ result.append(", htmlPattern: ");
+ result.append(htmlPattern);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropPriceStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropProgressbarStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropProgressbarStyleImpl.java
new file mode 100644
index 0000000..01006a0
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropProgressbarStyleImpl.java
@@ -0,0 +1,169 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridPropProgressbarStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Progressbar Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropProgressbarStyleImpl#getMaxValue <em>Max Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropProgressbarStyleImpl extends CxGridPropStyleImpl implements CxGridPropProgressbarStyle {
+ /**
+ * 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 = 0.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;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropProgressbarStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_PROGRESSBAR_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getMaxValue() {
+ return maxValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMaxValue(double newMaxValue) {
+ double oldMaxValue = maxValue;
+ maxValue = newMaxValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE, oldMaxValue, maxValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE:
+ return getMaxValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE:
+ setMaxValue((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE:
+ setMaxValue(MAX_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE__MAX_VALUE:
+ return maxValue != MAX_VALUE_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(" (maxValue: ");
+ result.append(maxValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropProgressbarStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropQuantityStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropQuantityStyleImpl.java
new file mode 100644
index 0000000..d17a773
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropQuantityStyleImpl.java
@@ -0,0 +1,481 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Quantity Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl#getValuePropertyPath <em>Value Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl#getValuePropertyDotPath <em>Value Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl#getValueNumberFormat <em>Value Number Format</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl#getUomPropertyPath <em>Uom Property Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl#getUomPropertyDotPath <em>Uom Property Dot Path</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropQuantityStyleImpl#getHtmlPattern <em>Html Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropQuantityStyleImpl extends CxGridPropStyleImpl implements CxGridPropQuantityStyle {
+ /**
+ * The cached value of the '{@link #getValuePropertyPath() <em>Value Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValuePropertyPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField valuePropertyPath;
+
+ /**
+ * The default value of the '{@link #getValuePropertyDotPath() <em>Value Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValuePropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_PROPERTY_DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValuePropertyDotPath() <em>Value Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValuePropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String valuePropertyDotPath = VALUE_PROPERTY_DOT_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValueNumberFormat() <em>Value Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValueNumberFormat()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_NUMBER_FORMAT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValueNumberFormat() <em>Value Number Format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValueNumberFormat()
+ * @generated
+ * @ordered
+ */
+ protected String valueNumberFormat = VALUE_NUMBER_FORMAT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getUomPropertyPath() <em>Uom Property Path</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUomPropertyPath()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField uomPropertyPath;
+
+ /**
+ * The default value of the '{@link #getUomPropertyDotPath() <em>Uom Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUomPropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String UOM_PROPERTY_DOT_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUomPropertyDotPath() <em>Uom Property Dot Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUomPropertyDotPath()
+ * @generated
+ * @ordered
+ */
+ protected String uomPropertyDotPath = UOM_PROPERTY_DOT_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHtmlPattern() <em>Html Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHtmlPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String HTML_PATTERN_EDEFAULT = "<b>{@value}</b> - <i>{@uom}</i>";
+
+ /**
+ * The cached value of the '{@link #getHtmlPattern() <em>Html Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHtmlPattern()
+ * @generated
+ * @ordered
+ */
+ protected String htmlPattern = HTML_PATTERN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropQuantityStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_QUANTITY_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getValuePropertyPath() {
+ return valuePropertyPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetValuePropertyPath(CxGridNestedField newValuePropertyPath, NotificationChain msgs) {
+ CxGridNestedField oldValuePropertyPath = valuePropertyPath;
+ valuePropertyPath = newValuePropertyPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH, oldValuePropertyPath, newValuePropertyPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValuePropertyPath(CxGridNestedField newValuePropertyPath) {
+ if (newValuePropertyPath != valuePropertyPath) {
+ NotificationChain msgs = null;
+ if (valuePropertyPath != null)
+ msgs = ((InternalEObject)valuePropertyPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH, null, msgs);
+ if (newValuePropertyPath != null)
+ msgs = ((InternalEObject)newValuePropertyPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH, null, msgs);
+ msgs = basicSetValuePropertyPath(newValuePropertyPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH, newValuePropertyPath, newValuePropertyPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValuePropertyDotPath() {
+ return valuePropertyDotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValuePropertyDotPath(String newValuePropertyDotPath) {
+ String oldValuePropertyDotPath = valuePropertyDotPath;
+ valuePropertyDotPath = newValuePropertyDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH, oldValuePropertyDotPath, valuePropertyDotPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValueNumberFormat() {
+ return valueNumberFormat;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValueNumberFormat(String newValueNumberFormat) {
+ String oldValueNumberFormat = valueNumberFormat;
+ valueNumberFormat = newValueNumberFormat;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT, oldValueNumberFormat, valueNumberFormat));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getUomPropertyPath() {
+ return uomPropertyPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetUomPropertyPath(CxGridNestedField newUomPropertyPath, NotificationChain msgs) {
+ CxGridNestedField oldUomPropertyPath = uomPropertyPath;
+ uomPropertyPath = newUomPropertyPath;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH, oldUomPropertyPath, newUomPropertyPath);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUomPropertyPath(CxGridNestedField newUomPropertyPath) {
+ if (newUomPropertyPath != uomPropertyPath) {
+ NotificationChain msgs = null;
+ if (uomPropertyPath != null)
+ msgs = ((InternalEObject)uomPropertyPath).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH, null, msgs);
+ if (newUomPropertyPath != null)
+ msgs = ((InternalEObject)newUomPropertyPath).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH, null, msgs);
+ msgs = basicSetUomPropertyPath(newUomPropertyPath, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH, newUomPropertyPath, newUomPropertyPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUomPropertyDotPath() {
+ return uomPropertyDotPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUomPropertyDotPath(String newUomPropertyDotPath) {
+ String oldUomPropertyDotPath = uomPropertyDotPath;
+ uomPropertyDotPath = newUomPropertyDotPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH, oldUomPropertyDotPath, uomPropertyDotPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getHtmlPattern() {
+ return htmlPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHtmlPattern(String newHtmlPattern) {
+ String oldHtmlPattern = htmlPattern;
+ htmlPattern = newHtmlPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN, oldHtmlPattern, htmlPattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH:
+ return basicSetValuePropertyPath(null, msgs);
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH:
+ return basicSetUomPropertyPath(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 CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH:
+ return getValuePropertyPath();
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH:
+ return getValuePropertyDotPath();
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT:
+ return getValueNumberFormat();
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH:
+ return getUomPropertyPath();
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH:
+ return getUomPropertyDotPath();
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN:
+ return getHtmlPattern();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH:
+ setValuePropertyPath((CxGridNestedField)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH:
+ setValuePropertyDotPath((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT:
+ setValueNumberFormat((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH:
+ setUomPropertyPath((CxGridNestedField)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH:
+ setUomPropertyDotPath((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN:
+ setHtmlPattern((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH:
+ setValuePropertyPath((CxGridNestedField)null);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH:
+ setValuePropertyDotPath(VALUE_PROPERTY_DOT_PATH_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT:
+ setValueNumberFormat(VALUE_NUMBER_FORMAT_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH:
+ setUomPropertyPath((CxGridNestedField)null);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH:
+ setUomPropertyDotPath(UOM_PROPERTY_DOT_PATH_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN:
+ setHtmlPattern(HTML_PATTERN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_PATH:
+ return valuePropertyPath != null;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_PROPERTY_DOT_PATH:
+ return VALUE_PROPERTY_DOT_PATH_EDEFAULT == null ? valuePropertyDotPath != null : !VALUE_PROPERTY_DOT_PATH_EDEFAULT.equals(valuePropertyDotPath);
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__VALUE_NUMBER_FORMAT:
+ return VALUE_NUMBER_FORMAT_EDEFAULT == null ? valueNumberFormat != null : !VALUE_NUMBER_FORMAT_EDEFAULT.equals(valueNumberFormat);
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_PATH:
+ return uomPropertyPath != null;
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__UOM_PROPERTY_DOT_PATH:
+ return UOM_PROPERTY_DOT_PATH_EDEFAULT == null ? uomPropertyDotPath != null : !UOM_PROPERTY_DOT_PATH_EDEFAULT.equals(uomPropertyDotPath);
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE__HTML_PATTERN:
+ return HTML_PATTERN_EDEFAULT == null ? htmlPattern != null : !HTML_PATTERN_EDEFAULT.equals(htmlPattern);
+ }
+ 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(" (valuePropertyDotPath: ");
+ result.append(valuePropertyDotPath);
+ result.append(", valueNumberFormat: ");
+ result.append(valueNumberFormat);
+ result.append(", uomPropertyDotPath: ");
+ result.append(uomPropertyDotPath);
+ result.append(", htmlPattern: ");
+ result.append(htmlPattern);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridPropQuantityStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropSparklineStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropSparklineStyleImpl.java
new file mode 100644
index 0000000..44bc8c0
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropSparklineStyleImpl.java
@@ -0,0 +1,182 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Sparkline Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridPropSparklineStyleImpl#getField <em>Field</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropSparklineStyleImpl extends CxGridPropStyleImpl implements CxGridPropSparklineStyle {
+ /**
+ * The cached value of the '{@link #getField() <em>Field</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getField()
+ * @generated
+ * @ordered
+ */
+ protected CxGridNestedField field;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropSparklineStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_SPARKLINE_STYLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridNestedField getField() {
+ return field;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetField(CxGridNestedField newField, NotificationChain msgs) {
+ CxGridNestedField oldField = field;
+ field = newField;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD, oldField, newField);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setField(CxGridNestedField newField) {
+ if (newField != field) {
+ NotificationChain msgs = null;
+ if (field != null)
+ msgs = ((InternalEObject)field).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD, null, msgs);
+ if (newField != null)
+ msgs = ((InternalEObject)newField).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD, null, msgs);
+ msgs = basicSetField(newField, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD, newField, newField));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD:
+ return basicSetField(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 CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD:
+ return getField();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD:
+ setField((CxGridNestedField)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD:
+ setField((CxGridNestedField)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE__FIELD:
+ return field != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //CxGridPropSparklineStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropStyleImpl.java
new file mode 100644
index 0000000..8938d03
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropStyleImpl.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CxGridPropStyleImpl extends MinimalEObjectImpl.Container implements CxGridPropStyle {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_STYLE;
+ }
+
+} //CxGridPropStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropTextStyleImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropTextStyleImpl.java
new file mode 100644
index 0000000..122aa7e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridPropTextStyleImpl.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cx Grid Prop Text Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridPropTextStyleImpl extends CxGridPropStyleImpl implements CxGridPropTextStyle {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridPropTextStyleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_PROP_TEXT_STYLE;
+ }
+
+} //CxGridPropTextStyleImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigImpl.java
new file mode 100644
index 0000000..8a65088
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigImpl.java
@@ -0,0 +1,51 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Config</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridStyleConfigImpl extends MinimalEObjectImpl.Container implements CxGridStyleConfig {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleConfigImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG;
+ }
+
+} //CxGridStyleConfigImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigNumericToResourceImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigNumericToResourceImpl.java
new file mode 100644
index 0000000..54b2ae8
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigNumericToResourceImpl.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridCompare;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Config Numeric To Resource</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl#getCompare <em>Compare</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigNumericToResourceImpl#getResourceThemePath <em>Resource Theme Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridStyleConfigNumericToResourceImpl extends CxGridStyleConfigImpl implements CxGridStyleConfigNumericToResource {
+ /**
+ * 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 #getCompare() <em>Compare</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompare()
+ * @generated
+ * @ordered
+ */
+ protected static final CxGridCompare COMPARE_EDEFAULT = CxGridCompare.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getCompare() <em>Compare</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompare()
+ * @generated
+ * @ordered
+ */
+ protected CxGridCompare compare = COMPARE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getResourceThemePath() <em>Resource Theme Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceThemePath()
+ * @generated
+ * @ordered
+ */
+ protected static final String RESOURCE_THEME_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getResourceThemePath() <em>Resource Theme Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceThemePath()
+ * @generated
+ * @ordered
+ */
+ protected String resourceThemePath = RESOURCE_THEME_PATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleConfigNumericToResourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(double newValue) {
+ double oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridCompare getCompare() {
+ return compare;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompare(CxGridCompare newCompare) {
+ CxGridCompare oldCompare = compare;
+ compare = newCompare == null ? COMPARE_EDEFAULT : newCompare;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE, oldCompare, compare));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getResourceThemePath() {
+ return resourceThemePath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setResourceThemePath(String newResourceThemePath) {
+ String oldResourceThemePath = resourceThemePath;
+ resourceThemePath = newResourceThemePath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH, oldResourceThemePath, resourceThemePath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE:
+ return getValue();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE:
+ return getCompare();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH:
+ return getResourceThemePath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE:
+ setValue((Double)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE:
+ setCompare((CxGridCompare)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH:
+ setResourceThemePath((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE:
+ setCompare(COMPARE_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH:
+ setResourceThemePath(RESOURCE_THEME_PATH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__VALUE:
+ return value != VALUE_EDEFAULT;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__COMPARE:
+ return compare != COMPARE_EDEFAULT;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE__RESOURCE_THEME_PATH:
+ return RESOURCE_THEME_PATH_EDEFAULT == null ? resourceThemePath != null : !RESOURCE_THEME_PATH_EDEFAULT.equals(resourceThemePath);
+ }
+ 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(" (value: ");
+ result.append(value);
+ result.append(", compare: ");
+ result.append(compare);
+ result.append(", resourceThemePath: ");
+ result.append(resourceThemePath);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridStyleConfigNumericToResourceImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigStringToResourceImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigStringToResourceImpl.java
new file mode 100644
index 0000000..5e4206a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleConfigStringToResourceImpl.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.CxGridCompare;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Config String To Resource</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl#getCompare <em>Compare</em>}</li>
+ * <li>{@link org.eclipse.osbp.infogrid.model.gridsource.style.impl.CxGridStyleConfigStringToResourceImpl#getResourceThemePath <em>Resource Theme Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CxGridStyleConfigStringToResourceImpl extends CxGridStyleConfigImpl implements CxGridStyleConfigStringToResource {
+ /**
+ * 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 #getCompare() <em>Compare</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompare()
+ * @generated
+ * @ordered
+ */
+ protected static final CxGridCompare COMPARE_EDEFAULT = CxGridCompare.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getCompare() <em>Compare</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompare()
+ * @generated
+ * @ordered
+ */
+ protected CxGridCompare compare = COMPARE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getResourceThemePath() <em>Resource Theme Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceThemePath()
+ * @generated
+ * @ordered
+ */
+ protected static final String RESOURCE_THEME_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getResourceThemePath() <em>Resource Theme Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResourceThemePath()
+ * @generated
+ * @ordered
+ */
+ protected String resourceThemePath = RESOURCE_THEME_PATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CxGridStyleConfigStringToResourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CxGridStylePackage.Literals.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE;
+ }
+
+ /**
+ * <!-- 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, CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridCompare getCompare() {
+ return compare;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompare(CxGridCompare newCompare) {
+ CxGridCompare oldCompare = compare;
+ compare = newCompare == null ? COMPARE_EDEFAULT : newCompare;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE, oldCompare, compare));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getResourceThemePath() {
+ return resourceThemePath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setResourceThemePath(String newResourceThemePath) {
+ String oldResourceThemePath = resourceThemePath;
+ resourceThemePath = newResourceThemePath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH, oldResourceThemePath, resourceThemePath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE:
+ return getValue();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE:
+ return getCompare();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH:
+ return getResourceThemePath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE:
+ setValue((String)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE:
+ setCompare((CxGridCompare)newValue);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH:
+ setResourceThemePath((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE:
+ setCompare(COMPARE_EDEFAULT);
+ return;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH:
+ setResourceThemePath(RESOURCE_THEME_PATH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__COMPARE:
+ return compare != COMPARE_EDEFAULT;
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE__RESOURCE_THEME_PATH:
+ return RESOURCE_THEME_PATH_EDEFAULT == null ? resourceThemePath != null : !RESOURCE_THEME_PATH_EDEFAULT.equals(resourceThemePath);
+ }
+ 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(" (value: ");
+ result.append(value);
+ result.append(", compare: ");
+ result.append(compare);
+ result.append(", resourceThemePath: ");
+ result.append(resourceThemePath);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CxGridStyleConfigStringToResourceImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleFactoryImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleFactoryImpl.java
new file mode 100644
index 0000000..24e07cc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStyleFactoryImpl.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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStyleFactoryImpl extends EFactoryImpl implements CxGridStyleFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CxGridStyleFactory init() {
+ try {
+ CxGridStyleFactory theCxGridStyleFactory = (CxGridStyleFactory)EPackage.Registry.INSTANCE.getEFactory(CxGridStylePackage.eNS_URI);
+ if (theCxGridStyleFactory != null) {
+ return theCxGridStyleFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CxGridStyleFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CxGridStylePackage.CX_GRID_PROP_HTML_STYLE: return createCxGridPropHtmlStyle();
+ case CxGridStylePackage.CX_GRID_PROP_TEXT_STYLE: return createCxGridPropTextStyle();
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE: return createCxGridPropButtonStyle();
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE: return createCxGridPropProgressbarStyle();
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE: return createCxGridPropSparklineStyle();
+ case CxGridStylePackage.CX_GRID_PROP_BOOLEAN_STYLE: return createCxGridPropBooleanStyle();
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE: return createCxGridPropNumberStyle();
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE: return createCxGridPropImageStyle();
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE: return createCxGridPropIndicatorStyle();
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE: return createCxGridPropDateStyle();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG: return createCxGridStyleConfig();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE: return createCxGridStyleConfigStringToResource();
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE: return createCxGridStyleConfigNumericToResource();
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE: return createCxGridPropQuantityStyle();
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE: return createCxGridPropPriceStyle();
+ 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 CxGridStylePackage.CX_GRID_COMPARE:
+ return createCxGridCompareFromString(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 CxGridStylePackage.CX_GRID_COMPARE:
+ return convertCxGridCompareToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropHtmlStyle createCxGridPropHtmlStyle() {
+ CxGridPropHtmlStyleImpl cxGridPropHtmlStyle = new CxGridPropHtmlStyleImpl();
+ return cxGridPropHtmlStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropTextStyle createCxGridPropTextStyle() {
+ CxGridPropTextStyleImpl cxGridPropTextStyle = new CxGridPropTextStyleImpl();
+ return cxGridPropTextStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropButtonStyle createCxGridPropButtonStyle() {
+ CxGridPropButtonStyleImpl cxGridPropButtonStyle = new CxGridPropButtonStyleImpl();
+ return cxGridPropButtonStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropProgressbarStyle createCxGridPropProgressbarStyle() {
+ CxGridPropProgressbarStyleImpl cxGridPropProgressbarStyle = new CxGridPropProgressbarStyleImpl();
+ return cxGridPropProgressbarStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropSparklineStyle createCxGridPropSparklineStyle() {
+ CxGridPropSparklineStyleImpl cxGridPropSparklineStyle = new CxGridPropSparklineStyleImpl();
+ return cxGridPropSparklineStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropBooleanStyle createCxGridPropBooleanStyle() {
+ CxGridPropBooleanStyleImpl cxGridPropBooleanStyle = new CxGridPropBooleanStyleImpl();
+ return cxGridPropBooleanStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropNumberStyle createCxGridPropNumberStyle() {
+ CxGridPropNumberStyleImpl cxGridPropNumberStyle = new CxGridPropNumberStyleImpl();
+ return cxGridPropNumberStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropImageStyle createCxGridPropImageStyle() {
+ CxGridPropImageStyleImpl cxGridPropImageStyle = new CxGridPropImageStyleImpl();
+ return cxGridPropImageStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropIndicatorStyle createCxGridPropIndicatorStyle() {
+ CxGridPropIndicatorStyleImpl cxGridPropIndicatorStyle = new CxGridPropIndicatorStyleImpl();
+ return cxGridPropIndicatorStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropDateStyle createCxGridPropDateStyle() {
+ CxGridPropDateStyleImpl cxGridPropDateStyle = new CxGridPropDateStyleImpl();
+ return cxGridPropDateStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleConfig createCxGridStyleConfig() {
+ CxGridStyleConfigImpl cxGridStyleConfig = new CxGridStyleConfigImpl();
+ return cxGridStyleConfig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleConfigStringToResource createCxGridStyleConfigStringToResource() {
+ CxGridStyleConfigStringToResourceImpl cxGridStyleConfigStringToResource = new CxGridStyleConfigStringToResourceImpl();
+ return cxGridStyleConfigStringToResource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleConfigNumericToResource createCxGridStyleConfigNumericToResource() {
+ CxGridStyleConfigNumericToResourceImpl cxGridStyleConfigNumericToResource = new CxGridStyleConfigNumericToResourceImpl();
+ return cxGridStyleConfigNumericToResource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropQuantityStyle createCxGridPropQuantityStyle() {
+ CxGridPropQuantityStyleImpl cxGridPropQuantityStyle = new CxGridPropQuantityStyleImpl();
+ return cxGridPropQuantityStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridPropPriceStyle createCxGridPropPriceStyle() {
+ CxGridPropPriceStyleImpl cxGridPropPriceStyle = new CxGridPropPriceStyleImpl();
+ return cxGridPropPriceStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridCompare createCxGridCompareFromString(EDataType eDataType, String initialValue) {
+ CxGridCompare result = CxGridCompare.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 convertCxGridCompareToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStylePackage getCxGridStylePackage() {
+ return (CxGridStylePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CxGridStylePackage getPackage() {
+ return CxGridStylePackage.eINSTANCE;
+ }
+
+} //CxGridStyleFactoryImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStylePackageImpl.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStylePackageImpl.java
new file mode 100644
index 0000000..59e3770
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/impl/CxGridStylePackageImpl.java
@@ -0,0 +1,719 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+import org.eclipse.osbp.infogrid.model.gridsource.impl.CxGridSourcePackageImpl;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleFactory;
+import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CxGridStylePackageImpl extends EPackageImpl implements CxGridStylePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropHtmlStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropTextStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropButtonStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropProgressbarStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropSparklineStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropBooleanStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropNumberStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropImageStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropIndicatorStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropDateStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridStyleConfigEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridStyleConfigStringToResourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridStyleConfigNumericToResourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridEventTopicAbleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropQuantityStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cxGridPropPriceStyleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum cxGridCompareEEnum = 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.infogrid.model.gridsource.style.CxGridStylePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CxGridStylePackageImpl() {
+ super(eNS_URI, CxGridStyleFactory.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 CxGridStylePackage#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
+ * @generated
+ */
+ public static CxGridStylePackage init() {
+ if (isInited) return (CxGridStylePackage)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI);
+
+ // Obtain or create and register package
+ CxGridStylePackageImpl theCxGridStylePackage = (CxGridStylePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CxGridStylePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CxGridStylePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ TypesPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ CxGridSourcePackageImpl theCxGridSourcePackage = (CxGridSourcePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI) instanceof CxGridSourcePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(CxGridSourcePackage.eNS_URI) : CxGridSourcePackage.eINSTANCE);
+
+ // Load packages
+ theCxGridSourcePackage.loadPackage();
+
+ // Fix loaded packages
+ theCxGridStylePackage.fixPackageContents();
+ theCxGridSourcePackage.fixPackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCxGridStylePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CxGridStylePackage.eNS_URI, theCxGridStylePackage);
+ return theCxGridStylePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropStyle() {
+ if (cxGridPropStyleEClass == null) {
+ cxGridPropStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(0);
+ }
+ return cxGridPropStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropHtmlStyle() {
+ if (cxGridPropHtmlStyleEClass == null) {
+ cxGridPropHtmlStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(1);
+ }
+ return cxGridPropHtmlStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropTextStyle() {
+ if (cxGridPropTextStyleEClass == null) {
+ cxGridPropTextStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(2);
+ }
+ return cxGridPropTextStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropButtonStyle() {
+ if (cxGridPropButtonStyleEClass == null) {
+ cxGridPropButtonStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(3);
+ }
+ return cxGridPropButtonStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropProgressbarStyle() {
+ if (cxGridPropProgressbarStyleEClass == null) {
+ cxGridPropProgressbarStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(4);
+ }
+ return cxGridPropProgressbarStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropProgressbarStyle_MaxValue() {
+ return (EAttribute)getCxGridPropProgressbarStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropSparklineStyle() {
+ if (cxGridPropSparklineStyleEClass == null) {
+ cxGridPropSparklineStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(5);
+ }
+ return cxGridPropSparklineStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridPropSparklineStyle_Field() {
+ return (EReference)getCxGridPropSparklineStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropBooleanStyle() {
+ if (cxGridPropBooleanStyleEClass == null) {
+ cxGridPropBooleanStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(6);
+ }
+ return cxGridPropBooleanStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropNumberStyle() {
+ if (cxGridPropNumberStyleEClass == null) {
+ cxGridPropNumberStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(7);
+ }
+ return cxGridPropNumberStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropNumberStyle_NumberFormat() {
+ return (EAttribute)getCxGridPropNumberStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropImageStyle() {
+ if (cxGridPropImageStyleEClass == null) {
+ cxGridPropImageStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(8);
+ }
+ return cxGridPropImageStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridPropImageStyle_Configs() {
+ return (EReference)getCxGridPropImageStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropIndicatorStyle() {
+ if (cxGridPropIndicatorStyleEClass == null) {
+ cxGridPropIndicatorStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(9);
+ }
+ return cxGridPropIndicatorStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropIndicatorStyle_GreenStarts() {
+ return (EAttribute)getCxGridPropIndicatorStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropIndicatorStyle_RedEnds() {
+ return (EAttribute)getCxGridPropIndicatorStyle().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropDateStyle() {
+ if (cxGridPropDateStyleEClass == null) {
+ cxGridPropDateStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(10);
+ }
+ return cxGridPropDateStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropDateStyle_DateFormat() {
+ return (EAttribute)getCxGridPropDateStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridStyleConfig() {
+ if (cxGridStyleConfigEClass == null) {
+ cxGridStyleConfigEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(11);
+ }
+ return cxGridStyleConfigEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridStyleConfigStringToResource() {
+ if (cxGridStyleConfigStringToResourceEClass == null) {
+ cxGridStyleConfigStringToResourceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(12);
+ }
+ return cxGridStyleConfigStringToResourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridStyleConfigStringToResource_Value() {
+ return (EAttribute)getCxGridStyleConfigStringToResource().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridStyleConfigStringToResource_Compare() {
+ return (EAttribute)getCxGridStyleConfigStringToResource().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridStyleConfigStringToResource_ResourceThemePath() {
+ return (EAttribute)getCxGridStyleConfigStringToResource().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridStyleConfigNumericToResource() {
+ if (cxGridStyleConfigNumericToResourceEClass == null) {
+ cxGridStyleConfigNumericToResourceEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(13);
+ }
+ return cxGridStyleConfigNumericToResourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridStyleConfigNumericToResource_Value() {
+ return (EAttribute)getCxGridStyleConfigNumericToResource().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridStyleConfigNumericToResource_Compare() {
+ return (EAttribute)getCxGridStyleConfigNumericToResource().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridStyleConfigNumericToResource_ResourceThemePath() {
+ return (EAttribute)getCxGridStyleConfigNumericToResource().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridEventTopicAble() {
+ if (cxGridEventTopicAbleEClass == null) {
+ cxGridEventTopicAbleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(15);
+ }
+ return cxGridEventTopicAbleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridEventTopicAble_EventTopic() {
+ return (EAttribute)getCxGridEventTopicAble().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropQuantityStyle() {
+ if (cxGridPropQuantityStyleEClass == null) {
+ cxGridPropQuantityStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(16);
+ }
+ return cxGridPropQuantityStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridPropQuantityStyle_ValuePropertyPath() {
+ return (EReference)getCxGridPropQuantityStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropQuantityStyle_ValuePropertyDotPath() {
+ return (EAttribute)getCxGridPropQuantityStyle().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropQuantityStyle_ValueNumberFormat() {
+ return (EAttribute)getCxGridPropQuantityStyle().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridPropQuantityStyle_UomPropertyPath() {
+ return (EReference)getCxGridPropQuantityStyle().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropQuantityStyle_UomPropertyDotPath() {
+ return (EAttribute)getCxGridPropQuantityStyle().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropQuantityStyle_HtmlPattern() {
+ return (EAttribute)getCxGridPropQuantityStyle().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCxGridPropPriceStyle() {
+ if (cxGridPropPriceStyleEClass == null) {
+ cxGridPropPriceStyleEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(17);
+ }
+ return cxGridPropPriceStyleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridPropPriceStyle_ValuePropertyPath() {
+ return (EReference)getCxGridPropPriceStyle().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropPriceStyle_ValuePropertyDotPath() {
+ return (EAttribute)getCxGridPropPriceStyle().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropPriceStyle_ValueNumberFormat() {
+ return (EAttribute)getCxGridPropPriceStyle().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCxGridPropPriceStyle_CurrencyPropertyPath() {
+ return (EReference)getCxGridPropPriceStyle().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropPriceStyle_CurrencyPropertyDotPath() {
+ return (EAttribute)getCxGridPropPriceStyle().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCxGridPropPriceStyle_HtmlPattern() {
+ return (EAttribute)getCxGridPropPriceStyle().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCxGridCompare() {
+ if (cxGridCompareEEnum == null) {
+ cxGridCompareEEnum = (EEnum)EPackage.Registry.INSTANCE.getEPackage(CxGridStylePackage.eNS_URI).getEClassifiers().get(14);
+ }
+ return cxGridCompareEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleFactory getCxGridStyleFactory() {
+ return (CxGridStyleFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isFixed = false;
+
+ /**
+ * Fixes up the loaded package, to make it appear as if it had been programmatically built.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fixPackageContents() {
+ if (isFixed) return;
+ isFixed = true;
+ fixEClassifiers();
+ }
+
+ /**
+ * Sets the instance class on the given classifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void fixInstanceClass(EClassifier eClassifier) {
+ if (eClassifier.getInstanceClassName() == null) {
+ eClassifier.setInstanceClassName("org.eclipse.osbp.infogrid.model.gridsource.style." + eClassifier.getName());
+ setGeneratedClassName(eClassifier);
+ }
+ }
+
+} //CxGridStylePackageImpl
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/util/CxGridStyleAdapterFactory.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/util/CxGridStyleAdapterFactory.java
new file mode 100644
index 0000000..09d02a1
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/util/CxGridStyleAdapterFactory.java
@@ -0,0 +1,418 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.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.infogrid.model.gridsource.style.*;
+
+/**
+ * <!-- 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.infogrid.model.gridsource.style.CxGridStylePackage
+ * @generated
+ */
+public class CxGridStyleAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CxGridStylePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CxGridStylePackage.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 CxGridStyleSwitch<Adapter> modelSwitch =
+ new CxGridStyleSwitch<Adapter>() {
+ @Override
+ public Adapter caseCxGridPropStyle(CxGridPropStyle object) {
+ return createCxGridPropStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropHtmlStyle(CxGridPropHtmlStyle object) {
+ return createCxGridPropHtmlStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropTextStyle(CxGridPropTextStyle object) {
+ return createCxGridPropTextStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropButtonStyle(CxGridPropButtonStyle object) {
+ return createCxGridPropButtonStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropProgressbarStyle(CxGridPropProgressbarStyle object) {
+ return createCxGridPropProgressbarStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropSparklineStyle(CxGridPropSparklineStyle object) {
+ return createCxGridPropSparklineStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropBooleanStyle(CxGridPropBooleanStyle object) {
+ return createCxGridPropBooleanStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropNumberStyle(CxGridPropNumberStyle object) {
+ return createCxGridPropNumberStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropImageStyle(CxGridPropImageStyle object) {
+ return createCxGridPropImageStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropIndicatorStyle(CxGridPropIndicatorStyle object) {
+ return createCxGridPropIndicatorStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropDateStyle(CxGridPropDateStyle object) {
+ return createCxGridPropDateStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridStyleConfig(CxGridStyleConfig object) {
+ return createCxGridStyleConfigAdapter();
+ }
+ @Override
+ public Adapter caseCxGridStyleConfigStringToResource(CxGridStyleConfigStringToResource object) {
+ return createCxGridStyleConfigStringToResourceAdapter();
+ }
+ @Override
+ public Adapter caseCxGridStyleConfigNumericToResource(CxGridStyleConfigNumericToResource object) {
+ return createCxGridStyleConfigNumericToResourceAdapter();
+ }
+ @Override
+ public Adapter caseCxGridEventTopicAble(CxGridEventTopicAble object) {
+ return createCxGridEventTopicAbleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropQuantityStyle(CxGridPropQuantityStyle object) {
+ return createCxGridPropQuantityStyleAdapter();
+ }
+ @Override
+ public Adapter caseCxGridPropPriceStyle(CxGridPropPriceStyle object) {
+ return createCxGridPropPriceStyleAdapter();
+ }
+ @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.infogrid.model.gridsource.style.CxGridPropStyle <em>Cx Grid Prop 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.infogrid.model.gridsource.style.CxGridPropStyle
+ * @generated
+ */
+ public Adapter createCxGridPropStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle <em>Cx Grid Prop Html 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.infogrid.model.gridsource.style.CxGridPropHtmlStyle
+ * @generated
+ */
+ public Adapter createCxGridPropHtmlStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle <em>Cx Grid Prop Text 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.infogrid.model.gridsource.style.CxGridPropTextStyle
+ * @generated
+ */
+ public Adapter createCxGridPropTextStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle <em>Cx Grid Prop Button 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.infogrid.model.gridsource.style.CxGridPropButtonStyle
+ * @generated
+ */
+ public Adapter createCxGridPropButtonStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle <em>Cx Grid Prop Progressbar 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.infogrid.model.gridsource.style.CxGridPropProgressbarStyle
+ * @generated
+ */
+ public Adapter createCxGridPropProgressbarStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropSparklineStyle <em>Cx Grid Prop Sparkline 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.infogrid.model.gridsource.style.CxGridPropSparklineStyle
+ * @generated
+ */
+ public Adapter createCxGridPropSparklineStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle <em>Cx Grid Prop Boolean 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.infogrid.model.gridsource.style.CxGridPropBooleanStyle
+ * @generated
+ */
+ public Adapter createCxGridPropBooleanStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle <em>Cx Grid Prop Number 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.infogrid.model.gridsource.style.CxGridPropNumberStyle
+ * @generated
+ */
+ public Adapter createCxGridPropNumberStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle <em>Cx Grid Prop Image 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.infogrid.model.gridsource.style.CxGridPropImageStyle
+ * @generated
+ */
+ public Adapter createCxGridPropImageStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropIndicatorStyle <em>Cx Grid Prop Indicator 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.infogrid.model.gridsource.style.CxGridPropIndicatorStyle
+ * @generated
+ */
+ public Adapter createCxGridPropIndicatorStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle <em>Cx Grid Prop Date 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.infogrid.model.gridsource.style.CxGridPropDateStyle
+ * @generated
+ */
+ public Adapter createCxGridPropDateStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfig <em>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.infogrid.model.gridsource.style.CxGridStyleConfig
+ * @generated
+ */
+ public Adapter createCxGridStyleConfigAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource <em>Config String To Resource</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.infogrid.model.gridsource.style.CxGridStyleConfigStringToResource
+ * @generated
+ */
+ public Adapter createCxGridStyleConfigStringToResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource <em>Config Numeric To Resource</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.infogrid.model.gridsource.style.CxGridStyleConfigNumericToResource
+ * @generated
+ */
+ public Adapter createCxGridStyleConfigNumericToResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridEventTopicAble <em>Cx Grid Event Topic 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.infogrid.model.gridsource.style.CxGridEventTopicAble
+ * @generated
+ */
+ public Adapter createCxGridEventTopicAbleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle <em>Cx Grid Prop Quantity 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.infogrid.model.gridsource.style.CxGridPropQuantityStyle
+ * @generated
+ */
+ public Adapter createCxGridPropQuantityStyleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle <em>Cx Grid Prop Price 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.infogrid.model.gridsource.style.CxGridPropPriceStyle
+ * @generated
+ */
+ public Adapter createCxGridPropPriceStyleAdapter() {
+ 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;
+ }
+
+} //CxGridStyleAdapterFactory
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/util/CxGridStyleSwitch.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/util/CxGridStyleSwitch.java
new file mode 100644
index 0000000..1228921
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/style/util/CxGridStyleSwitch.java
@@ -0,0 +1,474 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.style.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.osbp.infogrid.model.gridsource.style.*;
+
+/**
+ * <!-- 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.infogrid.model.gridsource.style.CxGridStylePackage
+ * @generated
+ */
+public class CxGridStyleSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CxGridStylePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridStyleSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CxGridStylePackage.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 CxGridStylePackage.CX_GRID_PROP_STYLE: {
+ CxGridPropStyle cxGridPropStyle = (CxGridPropStyle)theEObject;
+ T result = caseCxGridPropStyle(cxGridPropStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_HTML_STYLE: {
+ CxGridPropHtmlStyle cxGridPropHtmlStyle = (CxGridPropHtmlStyle)theEObject;
+ T result = caseCxGridPropHtmlStyle(cxGridPropHtmlStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropHtmlStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_TEXT_STYLE: {
+ CxGridPropTextStyle cxGridPropTextStyle = (CxGridPropTextStyle)theEObject;
+ T result = caseCxGridPropTextStyle(cxGridPropTextStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropTextStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_BUTTON_STYLE: {
+ CxGridPropButtonStyle cxGridPropButtonStyle = (CxGridPropButtonStyle)theEObject;
+ T result = caseCxGridPropButtonStyle(cxGridPropButtonStyle);
+ if (result == null) result = caseCxGridEventTopicAble(cxGridPropButtonStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropButtonStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_PROGRESSBAR_STYLE: {
+ CxGridPropProgressbarStyle cxGridPropProgressbarStyle = (CxGridPropProgressbarStyle)theEObject;
+ T result = caseCxGridPropProgressbarStyle(cxGridPropProgressbarStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropProgressbarStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_SPARKLINE_STYLE: {
+ CxGridPropSparklineStyle cxGridPropSparklineStyle = (CxGridPropSparklineStyle)theEObject;
+ T result = caseCxGridPropSparklineStyle(cxGridPropSparklineStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropSparklineStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_BOOLEAN_STYLE: {
+ CxGridPropBooleanStyle cxGridPropBooleanStyle = (CxGridPropBooleanStyle)theEObject;
+ T result = caseCxGridPropBooleanStyle(cxGridPropBooleanStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropBooleanStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_NUMBER_STYLE: {
+ CxGridPropNumberStyle cxGridPropNumberStyle = (CxGridPropNumberStyle)theEObject;
+ T result = caseCxGridPropNumberStyle(cxGridPropNumberStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropNumberStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_IMAGE_STYLE: {
+ CxGridPropImageStyle cxGridPropImageStyle = (CxGridPropImageStyle)theEObject;
+ T result = caseCxGridPropImageStyle(cxGridPropImageStyle);
+ if (result == null) result = caseCxGridEventTopicAble(cxGridPropImageStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropImageStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_INDICATOR_STYLE: {
+ CxGridPropIndicatorStyle cxGridPropIndicatorStyle = (CxGridPropIndicatorStyle)theEObject;
+ T result = caseCxGridPropIndicatorStyle(cxGridPropIndicatorStyle);
+ if (result == null) result = caseCxGridEventTopicAble(cxGridPropIndicatorStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropIndicatorStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_DATE_STYLE: {
+ CxGridPropDateStyle cxGridPropDateStyle = (CxGridPropDateStyle)theEObject;
+ T result = caseCxGridPropDateStyle(cxGridPropDateStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropDateStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG: {
+ CxGridStyleConfig cxGridStyleConfig = (CxGridStyleConfig)theEObject;
+ T result = caseCxGridStyleConfig(cxGridStyleConfig);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_STRING_TO_RESOURCE: {
+ CxGridStyleConfigStringToResource cxGridStyleConfigStringToResource = (CxGridStyleConfigStringToResource)theEObject;
+ T result = caseCxGridStyleConfigStringToResource(cxGridStyleConfigStringToResource);
+ if (result == null) result = caseCxGridStyleConfig(cxGridStyleConfigStringToResource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_STYLE_CONFIG_NUMERIC_TO_RESOURCE: {
+ CxGridStyleConfigNumericToResource cxGridStyleConfigNumericToResource = (CxGridStyleConfigNumericToResource)theEObject;
+ T result = caseCxGridStyleConfigNumericToResource(cxGridStyleConfigNumericToResource);
+ if (result == null) result = caseCxGridStyleConfig(cxGridStyleConfigNumericToResource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_EVENT_TOPIC_ABLE: {
+ CxGridEventTopicAble cxGridEventTopicAble = (CxGridEventTopicAble)theEObject;
+ T result = caseCxGridEventTopicAble(cxGridEventTopicAble);
+ if (result == null) result = caseCxGridPropStyle(cxGridEventTopicAble);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_QUANTITY_STYLE: {
+ CxGridPropQuantityStyle cxGridPropQuantityStyle = (CxGridPropQuantityStyle)theEObject;
+ T result = caseCxGridPropQuantityStyle(cxGridPropQuantityStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropQuantityStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridStylePackage.CX_GRID_PROP_PRICE_STYLE: {
+ CxGridPropPriceStyle cxGridPropPriceStyle = (CxGridPropPriceStyle)theEObject;
+ T result = caseCxGridPropPriceStyle(cxGridPropPriceStyle);
+ if (result == null) result = caseCxGridPropStyle(cxGridPropPriceStyle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop 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>Cx Grid Prop Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropStyle(CxGridPropStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Html 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>Cx Grid Prop Html Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropHtmlStyle(CxGridPropHtmlStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Text 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>Cx Grid Prop Text Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropTextStyle(CxGridPropTextStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Button 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>Cx Grid Prop Button Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropButtonStyle(CxGridPropButtonStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Progressbar 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>Cx Grid Prop Progressbar Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropProgressbarStyle(CxGridPropProgressbarStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Sparkline 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>Cx Grid Prop Sparkline Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropSparklineStyle(CxGridPropSparklineStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Boolean 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>Cx Grid Prop Boolean Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropBooleanStyle(CxGridPropBooleanStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Number 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>Cx Grid Prop Number Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropNumberStyle(CxGridPropNumberStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Image 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>Cx Grid Prop Image Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropImageStyle(CxGridPropImageStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Indicator 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>Cx Grid Prop Indicator Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropIndicatorStyle(CxGridPropIndicatorStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Date 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>Cx Grid Prop Date Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropDateStyle(CxGridPropDateStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>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>Config</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridStyleConfig(CxGridStyleConfig object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Config String To Resource</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>Config String To Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridStyleConfigStringToResource(CxGridStyleConfigStringToResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Config Numeric To Resource</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>Config Numeric To Resource</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridStyleConfigNumericToResource(CxGridStyleConfigNumericToResource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Event Topic 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>Cx Grid Event Topic Able</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridEventTopicAble(CxGridEventTopicAble object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Quantity 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>Cx Grid Prop Quantity Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropQuantityStyle(CxGridPropQuantityStyle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Prop Price 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>Cx Grid Prop Price Style</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridPropPriceStyle(CxGridPropPriceStyle 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;
+ }
+
+} //CxGridStyleSwitch
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/CxGridSourceAdapterFactory.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/CxGridSourceAdapterFactory.java
new file mode 100644
index 0000000..810039c
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/CxGridSourceAdapterFactory.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.infogrid.model.gridsource.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.infogrid.model.gridsource.*;
+
+/**
+ * <!-- 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.infogrid.model.gridsource.CxGridSourcePackage
+ * @generated
+ */
+public class CxGridSourceAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CxGridSourcePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CxGridSourcePackage.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 CxGridSourceSwitch<Adapter> modelSwitch =
+ new CxGridSourceSwitch<Adapter>() {
+ @Override
+ public Adapter caseCxGridSource(CxGridSource object) {
+ return createCxGridSourceAdapter();
+ }
+ @Override
+ public Adapter caseCxGridSourceInput(CxGridSourceInput object) {
+ return createCxGridSourceInputAdapter();
+ }
+ @Override
+ public Adapter caseCxGridProperty(CxGridProperty object) {
+ return createCxGridPropertyAdapter();
+ }
+ @Override
+ public Adapter caseCxGridNestedField(CxGridNestedField object) {
+ return createCxGridNestedFieldAdapter();
+ }
+ @Override
+ public Adapter caseCxGridNestedPath(CxGridNestedPath object) {
+ return createCxGridNestedPathAdapter();
+ }
+ @Override
+ public Adapter caseCxGridSourceEQFilter(CxGridSourceEQFilter object) {
+ return createCxGridSourceEQFilterAdapter();
+ }
+ @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.infogrid.model.gridsource.CxGridSource <em>Cx Grid Source</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.infogrid.model.gridsource.CxGridSource
+ * @generated
+ */
+ public Adapter createCxGridSourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput <em>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.infogrid.model.gridsource.CxGridSourceInput
+ * @generated
+ */
+ public Adapter createCxGridSourceInputAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty <em>Cx Grid Property</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.infogrid.model.gridsource.CxGridProperty
+ * @generated
+ */
+ public Adapter createCxGridPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField <em>Cx Grid Nested 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.infogrid.model.gridsource.CxGridNestedField
+ * @generated
+ */
+ public Adapter createCxGridNestedFieldAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath <em>Cx Grid Nested Path</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.infogrid.model.gridsource.CxGridNestedPath
+ * @generated
+ */
+ public Adapter createCxGridNestedPathAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceEQFilter <em>EQ Filter</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.infogrid.model.gridsource.CxGridSourceEQFilter
+ * @generated
+ */
+ public Adapter createCxGridSourceEQFilterAdapter() {
+ 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;
+ }
+
+} //CxGridSourceAdapterFactory
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/CxGridSourceSwitch.java b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/CxGridSourceSwitch.java
new file mode 100644
index 0000000..4ab1f92
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/CxGridSourceSwitch.java
@@ -0,0 +1,225 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.model.gridsource.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.osbp.infogrid.model.gridsource.*;
+
+/**
+ * <!-- 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.infogrid.model.gridsource.CxGridSourcePackage
+ * @generated
+ */
+public class CxGridSourceSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CxGridSourcePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CxGridSourceSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CxGridSourcePackage.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 CxGridSourcePackage.CX_GRID_SOURCE: {
+ CxGridSource cxGridSource = (CxGridSource)theEObject;
+ T result = caseCxGridSource(cxGridSource);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridSourcePackage.CX_GRID_SOURCE_INPUT: {
+ CxGridSourceInput cxGridSourceInput = (CxGridSourceInput)theEObject;
+ T result = caseCxGridSourceInput(cxGridSourceInput);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridSourcePackage.CX_GRID_PROPERTY: {
+ CxGridProperty cxGridProperty = (CxGridProperty)theEObject;
+ T result = caseCxGridProperty(cxGridProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridSourcePackage.CX_GRID_NESTED_FIELD: {
+ CxGridNestedField cxGridNestedField = (CxGridNestedField)theEObject;
+ T result = caseCxGridNestedField(cxGridNestedField);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridSourcePackage.CX_GRID_NESTED_PATH: {
+ CxGridNestedPath cxGridNestedPath = (CxGridNestedPath)theEObject;
+ T result = caseCxGridNestedPath(cxGridNestedPath);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CxGridSourcePackage.CX_GRID_SOURCE_EQ_FILTER: {
+ CxGridSourceEQFilter cxGridSourceEQFilter = (CxGridSourceEQFilter)theEObject;
+ T result = caseCxGridSourceEQFilter(cxGridSourceEQFilter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Source</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>Cx Grid Source</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridSource(CxGridSource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>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>Input</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridSourceInput(CxGridSourceInput object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Property</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>Cx Grid Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridProperty(CxGridProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Nested 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>Cx Grid Nested Field</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridNestedField(CxGridNestedField object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cx Grid Nested Path</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>Cx Grid Nested Path</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridNestedPath(CxGridNestedPath object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EQ Filter</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>EQ Filter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCxGridSourceEQFilter(CxGridSourceEQFilter 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;
+ }
+
+} //CxGridSourceSwitch
diff --git a/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/Util.xtend b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/Util.xtend
new file mode 100644
index 0000000..f6a3421
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/src/org/eclipse/osbp/infogrid/model/gridsource/util/Util.xtend
@@ -0,0 +1,124 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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
+ *
+ *
+ * This copyright notice shows up in the generated Java code
+ *
+ */
+
+package org.eclipse.osbp.infogrid.model.gridsource.util
+
+import org.eclipse.xtext.common.types.JvmType
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty
+
+class Util {
+
+ def static String calcDotPath(CxGridProperty property) {
+ if (property.path == null) {
+ return "";
+ }
+
+ return property.path.calcDotPath
+ }
+
+ def static String calcDotPath(CxGridNestedField field) {
+ if (field == null || field.field == null) {
+ return "";
+ }
+
+ val String fieldName = field.field.simpleName.toPropertyName
+ val String tail = field.path?.calcDotPath
+ return if(!tail.nullOrEmpty) fieldName + "." + tail else fieldName
+ }
+
+ def static String calcDotPath(CxGridNestedPath path) {
+ if (path == null || path.field == null) {
+ return "";
+ }
+
+ val String fieldName = path.field.simpleName.toPropertyName
+ val String tail = path.path?.calcDotPath
+
+ return if(!tail.nullOrEmpty) fieldName + "." + tail else fieldName
+ }
+
+ def static JvmType calcLeafType(CxGridProperty property) {
+ if (property.path == null) {
+ return null;
+ }
+
+ return property.path.calcLeafType
+ }
+
+ def static JvmType calcLeafType(CxGridNestedField field) {
+ if (field == null || field.field == null) {
+ return null;
+ }
+
+ if (field.path != null) {
+ return field.path.calcLeafType
+ } else {
+ return field.field.returnType.type
+ }
+ }
+
+ def static JvmType calcLeafType(CxGridNestedPath path) {
+ if (path == null || path.field == null) {
+ return null;
+ }
+
+ if (path.path != null) {
+ return path.path.calcLeafType
+ } else {
+ return path.field.returnType.type
+ }
+ }
+
+ /**
+ * Normalizes the method name.
+ *
+ * @param simpleName
+ * @return
+ */
+ def static String toPropertyName(String simpleName) {
+ if (simpleName == null) {
+ return null;
+ }
+ var String tempName = null;
+ if (isSetter(simpleName)) {
+ tempName = StringExtensions.toFirstLower(simpleName.replaceFirst(
+ "set", ""));
+ } else if (isGetter(simpleName)) {
+ if (simpleName.startsWith("get")) {
+ tempName = StringExtensions.toFirstLower(simpleName
+ .replaceFirst("get", ""));
+ } else {
+ tempName = StringExtensions.toFirstLower(simpleName
+ .replaceFirst("is", ""));
+ }
+ }
+ return tempName;
+ }
+
+ def static boolean isGetter(String simpleName) {
+ if (simpleName == null) {
+ return false;
+ }
+ return simpleName.startsWith("get") || simpleName.startsWith("is");
+ }
+
+ def static boolean isSetter(String simpleName) {
+ return simpleName != null && simpleName.startsWith("set");
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.model/xtend-gen/org/eclipse/osbp/infogrid/model/gridsource/util/Util.java b/org.eclipse.osbp.infogrid.model/xtend-gen/org/eclipse/osbp/infogrid/model/gridsource/util/Util.java
new file mode 100644
index 0000000..066bd48
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.model/xtend-gen/org/eclipse/osbp/infogrid/model/gridsource/util/Util.java
@@ -0,0 +1,227 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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
+ *
+ *
+ * This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.infogrid.model.gridsource.util;
+
+import com.google.common.base.Objects;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedPath;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmType;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+@SuppressWarnings("all")
+public class Util {
+ public static String calcDotPath(final CxGridProperty property) {
+ CxGridNestedField _path = property.getPath();
+ boolean _equals = Objects.equal(_path, null);
+ if (_equals) {
+ return "";
+ }
+ CxGridNestedField _path_1 = property.getPath();
+ return Util.calcDotPath(_path_1);
+ }
+
+ public static String calcDotPath(final CxGridNestedField field) {
+ boolean _or = false;
+ boolean _equals = Objects.equal(field, null);
+ if (_equals) {
+ _or = true;
+ } else {
+ JvmOperation _field = field.getField();
+ boolean _equals_1 = Objects.equal(_field, null);
+ _or = _equals_1;
+ }
+ if (_or) {
+ return "";
+ }
+ JvmOperation _field_1 = field.getField();
+ String _simpleName = _field_1.getSimpleName();
+ final String fieldName = Util.toPropertyName(_simpleName);
+ CxGridNestedPath _path = field.getPath();
+ String _calcDotPath = null;
+ if (_path!=null) {
+ _calcDotPath=Util.calcDotPath(_path);
+ }
+ final String tail = _calcDotPath;
+ String _xifexpression = null;
+ boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(tail);
+ boolean _not = (!_isNullOrEmpty);
+ if (_not) {
+ _xifexpression = ((fieldName + ".") + tail);
+ } else {
+ _xifexpression = fieldName;
+ }
+ return _xifexpression;
+ }
+
+ public static String calcDotPath(final CxGridNestedPath path) {
+ boolean _or = false;
+ boolean _equals = Objects.equal(path, null);
+ if (_equals) {
+ _or = true;
+ } else {
+ JvmOperation _field = path.getField();
+ boolean _equals_1 = Objects.equal(_field, null);
+ _or = _equals_1;
+ }
+ if (_or) {
+ return "";
+ }
+ JvmOperation _field_1 = path.getField();
+ String _simpleName = _field_1.getSimpleName();
+ final String fieldName = Util.toPropertyName(_simpleName);
+ CxGridNestedPath _path = path.getPath();
+ String _calcDotPath = null;
+ if (_path!=null) {
+ _calcDotPath=Util.calcDotPath(_path);
+ }
+ final String tail = _calcDotPath;
+ String _xifexpression = null;
+ boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(tail);
+ boolean _not = (!_isNullOrEmpty);
+ if (_not) {
+ _xifexpression = ((fieldName + ".") + tail);
+ } else {
+ _xifexpression = fieldName;
+ }
+ return _xifexpression;
+ }
+
+ public static JvmType calcLeafType(final CxGridProperty property) {
+ CxGridNestedField _path = property.getPath();
+ boolean _equals = Objects.equal(_path, null);
+ if (_equals) {
+ return null;
+ }
+ CxGridNestedField _path_1 = property.getPath();
+ return Util.calcLeafType(_path_1);
+ }
+
+ public static JvmType calcLeafType(final CxGridNestedField field) {
+ boolean _or = false;
+ boolean _equals = Objects.equal(field, null);
+ if (_equals) {
+ _or = true;
+ } else {
+ JvmOperation _field = field.getField();
+ boolean _equals_1 = Objects.equal(_field, null);
+ _or = _equals_1;
+ }
+ if (_or) {
+ return null;
+ }
+ CxGridNestedPath _path = field.getPath();
+ boolean _notEquals = (!Objects.equal(_path, null));
+ if (_notEquals) {
+ CxGridNestedPath _path_1 = field.getPath();
+ return Util.calcLeafType(_path_1);
+ } else {
+ JvmOperation _field_1 = field.getField();
+ JvmTypeReference _returnType = _field_1.getReturnType();
+ return _returnType.getType();
+ }
+ }
+
+ public static JvmType calcLeafType(final CxGridNestedPath path) {
+ boolean _or = false;
+ boolean _equals = Objects.equal(path, null);
+ if (_equals) {
+ _or = true;
+ } else {
+ JvmOperation _field = path.getField();
+ boolean _equals_1 = Objects.equal(_field, null);
+ _or = _equals_1;
+ }
+ if (_or) {
+ return null;
+ }
+ CxGridNestedPath _path = path.getPath();
+ boolean _notEquals = (!Objects.equal(_path, null));
+ if (_notEquals) {
+ CxGridNestedPath _path_1 = path.getPath();
+ return Util.calcLeafType(_path_1);
+ } else {
+ JvmOperation _field_1 = path.getField();
+ JvmTypeReference _returnType = _field_1.getReturnType();
+ return _returnType.getType();
+ }
+ }
+
+ /**
+ * Normalizes the method name.
+ *
+ * @param simpleName
+ * @return
+ */
+ public static String toPropertyName(final String simpleName) {
+ boolean _equals = Objects.equal(simpleName, null);
+ if (_equals) {
+ return null;
+ }
+ String tempName = null;
+ boolean _isSetter = Util.isSetter(simpleName);
+ if (_isSetter) {
+ String _replaceFirst = simpleName.replaceFirst(
+ "set", "");
+ String _firstLower = StringExtensions.toFirstLower(_replaceFirst);
+ tempName = _firstLower;
+ } else {
+ boolean _isGetter = Util.isGetter(simpleName);
+ if (_isGetter) {
+ boolean _startsWith = simpleName.startsWith("get");
+ if (_startsWith) {
+ String _replaceFirst_1 = simpleName.replaceFirst("get", "");
+ String _firstLower_1 = StringExtensions.toFirstLower(_replaceFirst_1);
+ tempName = _firstLower_1;
+ } else {
+ String _replaceFirst_2 = simpleName.replaceFirst("is", "");
+ String _firstLower_2 = StringExtensions.toFirstLower(_replaceFirst_2);
+ tempName = _firstLower_2;
+ }
+ }
+ }
+ return tempName;
+ }
+
+ public static boolean isGetter(final String simpleName) {
+ boolean _equals = Objects.equal(simpleName, null);
+ if (_equals) {
+ return false;
+ }
+ boolean _or = false;
+ boolean _startsWith = simpleName.startsWith("get");
+ if (_startsWith) {
+ _or = true;
+ } else {
+ boolean _startsWith_1 = simpleName.startsWith("is");
+ _or = _startsWith_1;
+ }
+ return _or;
+ }
+
+ public static boolean isSetter(final String simpleName) {
+ boolean _and = false;
+ boolean _notEquals = (!Objects.equal(simpleName, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ boolean _startsWith = simpleName.startsWith("set");
+ _and = _startsWith;
+ }
+ return _and;
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/.project b/org.eclipse.osbp.infogrid.services.tests/.project
new file mode 100644
index 0000000..b3ab9a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.services.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.infogrid.services.tests/LICENSE.txt b/org.eclipse.osbp.infogrid.services.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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.infogrid.services.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.services.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..2284277
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.services.tests
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.services.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.junit;bundle-version="4.11.0",
+ org.eclipse.equinox.ds;bundle-version="1.4.200",
+ org.eclipse.equinox.event;bundle-version="1.3.100",
+ org.eclipse.equinox.util;bundle-version="1.0.500",
+ org.knowhowlab.osgi.testing.assertions;bundle-version="[1.3.0,1.3.1)",
+ org.knowhowlab.osgi.testing.utils;bundle-version="[1.2.2,1.2.3)",
+ org.eclipse.osbp.infogrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.services;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.ecview;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ com.vaadin.server;bundle-version="7.5.7",
+ com.vaadin.shared;bundle-version="7.5.7",
+ org.eclipse.osbp.ecview.core.common;bundle-version="[0.9.0,0.10.0)"
+Import-Package: org.osgi.framework;version="1.8.0",
+ org.osgi.service.component;version="1.2.2"
+OSbee-Models:
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.infogrid.services.tests/about.html b/org.eclipse.osbp.infogrid.services.tests/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.services.tests/about.ini b/org.eclipse.osbp.infogrid.services.tests/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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.infogrid.services.tests/about.mappings b/org.eclipse.osbp.infogrid.services.tests/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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.infogrid.services.tests/about.properties b/org.eclipse.osbp.infogrid.services.tests/about.properties
new file mode 100644
index 0000000..f855411
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.services.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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.services.tests/build.properties b/org.eclipse.osbp.infogrid.services.tests/build.properties
new file mode 100644
index 0000000..c13e5be
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\
+ .,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+src.includes = about.properties, about.mappings, about.ini, about.html, epl-v10.html,\
+ license.html,\
+ LICENSE.txt
diff --git a/org.eclipse.osbp.infogrid.services.tests/epl-v10.html b/org.eclipse.osbp.infogrid.services.tests/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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.infogrid.services.tests/license.html b/org.eclipse.osbp.infogrid.services.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.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™ 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.infogrid.services.tests/models/my.gridsource.gridsource_xmi b/org.eclipse.osbp.infogrid.services.tests/models/my.gridsource.gridsource_xmi
new file mode 100644
index 0000000..001bcbd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/models/my.gridsource.gridsource_xmi
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ASCII"?>
+<gridsource:CxGridSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gridsource="http://osbp.eclipse.org/gridsource/v1/core" xmlns:style="http://osbp.eclipse.org/gridsource/v1/core/style" xmlns:types="http://www.eclipse.org/xtext/common/JavaVMTypes" id="org.my" rootTypeFQN="org.eclipse.osbp.infogrid.services.tests.data.MyDto">
+ <rootType xsi:type="types:JvmParameterizedTypeReference">
+ <type xsi:type="types:JvmGenericType" href="java:/Objects/org.eclipse.osbp.infogrid.services.tests.data.MyDto#org.eclipse.osbp.infogrid.services.tests.data.MyDto"/>
+ </rootType>
+ <properties dotPath="child.value">
+ <path>
+ <field href="java:/Objects/org.eclipse.osbp.infogrid.services.tests.data.MyDto#org.eclipse.osbp.infogrid.services.tests.data.MyDto.getChild()"/>
+ <path>
+ <field href="java:/Objects/org.eclipse.osbp.infogrid.services.tests.data.MyDto#org.eclipse.osbp.infogrid.services.tests.data.MyDto.getValue()"/>
+ </path>
+ </path>
+ <style xsi:type="style:CxGridPropButtonStyle"/>
+ </properties>
+</gridsource:CxGridSource>
diff --git a/org.eclipse.osbp.infogrid.services.tests/pom.xml b/org.eclipse.osbp.infogrid.services.tests/pom.xml
new file mode 100644
index 0000000..3474da0
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.services.tests</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/ECViewGridSourceDescriptorTest.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/ECViewGridSourceDescriptorTest.java
new file mode 100644
index 0000000..7e6cfb9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/ECViewGridSourceDescriptorTest.java
@@ -0,0 +1,126 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.knowhowlab.osgi.testing.utils.BundleUtils;
+import org.knowhowlab.osgi.testing.utils.ServiceUtils;
+import org.eclipse.osbp.ecview.core.common.context.IViewContext;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
+import org.eclipse.osbp.infogrid.ecview.ECViewGridSourceDescriptor;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+
+import com.vaadin.ui.ComponentContainer;
+
+@SuppressWarnings("restriction")
+public class ECViewGridSourceDescriptorTest {
+
+ private BundleContext bc;
+ private IGridSourceFacade facade;
+ private IGridSourceDescriptor descriptor;
+
+ @Before
+ public void setup() throws Exception {
+ bc = getBundleContext();
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.model");
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.services");
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.ecview");
+
+ facade = ServiceUtils.getService(getBundleContext(),
+ IGridSourceFacade.class);
+ assertNotNull(facade);
+ descriptor = facade.getDescriptor("org.my",
+ new IGridSourceDescriptor.ConfigCallback() {
+ @Override
+ public Map<String, Object> getProperties(
+ IGridSourceDescriptor descriptor) {
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put("locale", Locale.GERMANY);
+ properties.put("userId", "Admin");
+ return properties;
+ }
+ });
+ }
+
+ private BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+ @Test
+ public void test_general() {
+ assertEquals("org.my", descriptor.getId());
+ assertNotNull(descriptor.getSource());
+ }
+
+ @Test
+ public void test_dispose() {
+ assertFalse(descriptor.isDisposed());
+
+ descriptor.dispose();
+
+ // check the access
+ descriptor.getId();
+
+ try {
+ descriptor.getComponent();
+ fail();
+ } catch (Exception ex) {
+ }
+
+ try {
+ descriptor.getLabel();
+ fail();
+ } catch (Exception ex) {
+ }
+
+ try {
+ descriptor.getSource();
+ fail();
+ } catch (Exception ex) {
+ }
+ }
+
+ @Test
+ public void test_getComponent() throws IllegalArgumentException,
+ IllegalAccessException, NoSuchFieldException, SecurityException {
+ ComponentContainer component = (ComponentContainer) descriptor
+ .getComponent();
+ assertNotNull(component);
+ assertEquals(1, component.getComponentCount());
+
+ Field field = ECViewGridSourceDescriptor.class
+ .getDeclaredField("viewContext");
+ field.setAccessible(true);
+ IViewContext viewContext = (IViewContext) field.get(descriptor);
+ assertFalse(viewContext.isDisposed());
+
+ // dispose
+ descriptor.dispose();
+ assertTrue(viewContext.isDisposed());
+ assertEquals(0, component.getComponentCount());
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceCacheBuilderTest.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceCacheBuilderTest.java
new file mode 100644
index 0000000..ac9df05
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceCacheBuilderTest.java
@@ -0,0 +1,74 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xtext.common.types.JvmGenericType;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.common.types.TypesFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.knowhowlab.osgi.testing.utils.BundleUtils;
+import org.knowhowlab.osgi.testing.utils.ServiceUtils;
+import org.eclipse.osbp.infogrid.api.IGridSourceCache;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.services.tests.data.MyDto;
+import org.eclipse.osbp.infogrid.services.tests.data.TestClass1;
+import org.eclipse.osbp.infogrid.services.tests.data.TestClass2;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+
+public class GridSourceCacheBuilderTest {
+
+ private BundleContext bc;
+ private IGridSourceCache cache;
+
+ @Before
+ public void setup() throws Exception {
+ bc = getBundleContext();
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.model");
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.services");
+
+ cache = ServiceUtils.getService(getBundleContext(),
+ IGridSourceCache.class);
+ assertNotNull(cache);
+ }
+
+ private BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+ @Test
+ public void test_getById() {
+
+ CxGridSource result = cache.getSource("org.my");
+ assertNotNull(result);
+ assertEquals("org.my", result.getId());
+ }
+
+ @Test
+ public void test_getByClass() {
+
+ List<CxGridSource> result = cache.getSources(MyDto.class);
+ assertEquals(1, result.size());
+ assertEquals("org.my", result.get(0).getId());
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceCacheTest.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceCacheTest.java
new file mode 100644
index 0000000..5745a51
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceCacheTest.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.infogrid.services.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xtext.common.types.JvmGenericType;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.common.types.TypesFactory;
+import org.junit.Before;
+import org.junit.Test;
+import org.knowhowlab.osgi.testing.utils.BundleUtils;
+import org.knowhowlab.osgi.testing.utils.ServiceUtils;
+import org.eclipse.osbp.infogrid.api.IGridSourceCache;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceFactory;
+import org.eclipse.osbp.infogrid.services.tests.data.TestClass1;
+import org.eclipse.osbp.infogrid.services.tests.data.TestClass2;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+
+public class GridSourceCacheTest {
+
+ private BundleContext bc;
+ private IGridSourceCache cache;
+
+ @Before
+ public void setup() throws Exception {
+ bc = getBundleContext();
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.model");
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.services");
+
+ cache = ServiceUtils.getService(getBundleContext(),
+ IGridSourceCache.class);
+ assertNotNull(cache);
+ }
+
+ private BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+ @Test
+ public void test_IdNull() {
+ assertNull(cache.getSource(null));
+ }
+
+ @Test
+ public void test_ClassNull() {
+ List<CxGridSource> result = cache.getSources(null);
+ assertEquals(0, result.size());
+ }
+
+ @Test
+ public void test_AddRemoveModel_getById() {
+
+ CxGridSource cxSource = CxGridSourceFactory.eINSTANCE
+ .createCxGridSource();
+ CxGridSource cxSource2 = CxGridSourceFactory.eINSTANCE
+ .createCxGridSource();
+ cxSource2.setId("test2");
+
+ // add remove with empty id
+ cache.registerSource(cxSource);
+ cache.unregisterSource(cxSource);
+
+ // add test1
+ cxSource.setId("test1");
+ cache.registerSource(cxSource);
+
+ CxGridSource result = cache.getSource("test1");
+ assertNotNull(result);
+ assertEquals("test1", result.getId());
+
+ cache.unregisterSource(cxSource);
+ result = cache.getSource("test1");
+ assertNull(result);
+
+ cache.registerSource(cxSource);
+ cache.registerSource(cxSource2);
+
+ assertEquals("test1", cache.getSource("test1").getId());
+ assertEquals("test2", cache.getSource("test2").getId());
+
+ cache.unregisterSource(cxSource);
+ }
+
+ @Test
+ public void test_AddRemoveModel_getByClass() {
+
+ JvmGenericType jvmType1 = TypesFactory.eINSTANCE.createJvmGenericType();
+ jvmType1.setSimpleName("TestClass1");
+ jvmType1.setPackageName("org.eclipse.osbp.infogrid.services.tests.data");
+
+ JvmParameterizedTypeReference jvmType1Ref = TypesFactory.eINSTANCE
+ .createJvmParameterizedTypeReference();
+ jvmType1Ref.setType(jvmType1);
+
+ JvmGenericType jvmType2 = TypesFactory.eINSTANCE.createJvmGenericType();
+ jvmType2.setSimpleName("TestClass2");
+ jvmType2.setPackageName("org.eclipse.osbp.infogrid.services.tests.data");
+
+ JvmParameterizedTypeReference jvmType2Ref = TypesFactory.eINSTANCE
+ .createJvmParameterizedTypeReference();
+ jvmType2Ref.setType(jvmType2);
+
+ CxGridSource cxSource = CxGridSourceFactory.eINSTANCE
+ .createCxGridSource();
+ cxSource.setId("test1");
+ cxSource.setRootType(jvmType1Ref);
+ cxSource.setRootTypeFQN(jvmType1Ref.getQualifiedName());
+ CxGridSource cxSource2 = CxGridSourceFactory.eINSTANCE
+ .createCxGridSource();
+ cxSource2.setId("test2");
+ cxSource2.setRootType(jvmType2Ref);
+ cxSource2.setRootTypeFQN(jvmType2Ref.getQualifiedName());
+ CxGridSource cxSource3 = CxGridSourceFactory.eINSTANCE
+ .createCxGridSource();
+ cxSource3.setId("test3");
+ cxSource3.setRootType(EcoreUtil.copy(jvmType1Ref));
+ cxSource3.setRootTypeFQN(jvmType1Ref.getQualifiedName());
+
+ // only register source1
+ cache.registerSource(cxSource);
+
+ List<CxGridSource> result = cache.getSources(TestClass1.class);
+ assertEquals(1, result.size());
+ assertEquals("test1", result.get(0).getId());
+
+ result = cache.getSources(TestClass2.class);
+ assertEquals(0, result.size());
+
+ // unregister source1
+ cache.unregisterSource(cxSource);
+ result = cache.getSources(TestClass1.class);
+ assertEquals(0, result.size());
+
+ // register all sources
+ cache.registerSource(cxSource);
+ cache.registerSource(cxSource2);
+ cache.registerSource(cxSource3);
+
+ // 2 descriptors are available
+ result = cache.getSources(TestClass1.class);
+ assertEquals(2, result.size());
+ assertEquals("test1", result.get(0).getId());
+ assertEquals("test3", result.get(1).getId());
+
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceFacadeTest.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceFacadeTest.java
new file mode 100644
index 0000000..dfce30f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/GridSourceFacadeTest.java
@@ -0,0 +1,125 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.knowhowlab.osgi.testing.utils.BundleUtils;
+import org.knowhowlab.osgi.testing.utils.ServiceUtils;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
+import org.eclipse.osbp.infogrid.ecview.ECViewGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.services.tests.data.MyDto;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+
+public class GridSourceFacadeTest {
+
+ private BundleContext bc;
+ private IGridSourceFacade facade;
+
+ @Before
+ public void setup() throws Exception {
+ bc = getBundleContext();
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.model");
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.services");
+ BundleUtils.startBundleAsync(bc, "org.eclipse.osbp.infogrid.ecview");
+
+ facade = ServiceUtils.getService(getBundleContext(),
+ IGridSourceFacade.class);
+ assertNotNull(facade);
+ }
+
+ private BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+ @Test
+ public void test_getById() {
+ CxGridSource result = facade.getSource("org.my");
+ assertNotNull(result);
+ assertEquals("org.my", result.getId());
+
+ CxGridSource result2 = facade.getSource("org.my");
+ assertNotSame(result, result2);
+ }
+
+ @Test
+ public void test_getByClass() {
+ List<CxGridSource> result = facade.getSources(MyDto.class);
+ assertEquals(1, result.size());
+ assertEquals("org.my", result.get(0).getId());
+
+ List<CxGridSource> result2 = facade.getSources(MyDto.class);
+ assertNotSame(result.get(0), result2.get(0));
+ }
+
+ @SuppressWarnings("restriction")
+ @Test
+ public void test_getDescriptorById() {
+ IGridSourceDescriptor result = facade.getDescriptor("org.my", null);
+ assertNotNull(result);
+ assertTrue(result instanceof ECViewGridSourceDescriptor);
+ }
+
+ @SuppressWarnings("restriction")
+ @Test
+ public void test_getDescriptorBySource() {
+ CxGridSource source = facade.getSource("org.my");
+ source.setKind(IGridSourceDescriptor.KIND_ECVIEW);
+ IGridSourceDescriptor result = facade.getDescriptor(source,
+ new IGridSourceDescriptor.ConfigCallback() {
+ @Override
+ public Map<String, Object> getProperties(
+ IGridSourceDescriptor descriptor) {
+ return null;
+ }
+ });
+ assertNotNull(result);
+ assertTrue(result instanceof ECViewGridSourceDescriptor);
+
+ // try different kind
+ source.setKind("NoKind");
+ result = facade.getDescriptor(source, null);
+ assertNull(result);
+ }
+
+ @SuppressWarnings("restriction")
+ @Test
+ public void test_getDescriptorsByClass() {
+ List<IGridSourceDescriptor> result = facade.getDescriptors(MyDto.class,
+ new IGridSourceDescriptor.ConfigCallback() {
+ @Override
+ public Map<String, Object> getProperties(
+ IGridSourceDescriptor descriptor) {
+ return null;
+ }
+ });
+ assertEquals(1, result.size());
+ assertTrue(result.get(0) instanceof ECViewGridSourceDescriptor);
+
+ result = facade.getDescriptors(List.class, null);
+ assertEquals(0, result.size());
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/MyDto.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/MyDto.java
new file mode 100644
index 0000000..5d7a4cd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/MyDto.java
@@ -0,0 +1,54 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services.tests.data;
+
+public class MyDto {
+
+ private String name;
+ private String name2;
+ private double value;
+ private MyDto child;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName2() {
+ return name2;
+ }
+
+ public void setName2(String name2) {
+ this.name2 = name2;
+ }
+
+ public double getValue() {
+ return value;
+ }
+
+ public void setValue(double value) {
+ this.value = value;
+ }
+
+ public MyDto getChild() {
+ return child;
+ }
+
+ public void setChild(MyDto child) {
+ this.child = child;
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/TestClass1.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/TestClass1.java
new file mode 100644
index 0000000..9f4d907
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/TestClass1.java
@@ -0,0 +1,17 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services.tests.data;
+
+public class TestClass1 {
+
+}
diff --git a/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/TestClass2.java b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/TestClass2.java
new file mode 100644
index 0000000..d31d396
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services.tests/src/org/eclipse/osbp/infogrid/services/tests/data/TestClass2.java
@@ -0,0 +1,17 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services.tests.data;
+
+public class TestClass2 {
+
+}
diff --git a/org.eclipse.osbp.infogrid.services/.project b/org.eclipse.osbp.infogrid.services/.project
new file mode 100644
index 0000000..6a6c547
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.services</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.infogrid.services/LICENSE.txt b/org.eclipse.osbp.infogrid.services/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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.infogrid.services/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.services/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..037c0d7
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.services
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.services
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.osbp.ecview.extension.grid.model,
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.emf.ecore.xmi
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.osgi.service.component;version="1.2.2",
+ org.osgi.service.component.annotations,
+ org.slf4j;version="1.7.2"
+Service-Component: OSGI-INF/*.xml
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceCache.xml b/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceCache.xml
new file mode 100644
index 0000000..09366c6
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceCache.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" activate="activate" deactivate="deactivate" immediate="true" name="org.eclipse.osbp.infogrid.services.GridSourceCache">
+ <implementation class="org.eclipse.osbp.infogrid.services.GridSourceCache"/>
+ <service>
+ <provide interface="org.eclipse.osbp.infogrid.api.IGridSourceCache"/>
+ </service>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceCacheBuilder.xml b/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceCacheBuilder.xml
new file mode 100644
index 0000000..959217b
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceCacheBuilder.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" activate="activate" deactivate="deactivate" immediate="true" name="org.eclipse.osbp.infogrid.services.GridSourceCacheBuilder">
+ <implementation class="org.eclipse.osbp.infogrid.services.GridSourceCacheBuilder"/>
+ <reference bind="bindGridSourceCache" cardinality="1..1" interface="org.eclipse.osbp.infogrid.api.IGridSourceCache" name="GridSourceCache" policy="static" unbind="unbindGridSourceCache"/>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceFacadeImpl.xml b/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceFacadeImpl.xml
new file mode 100644
index 0000000..6ae25e4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/OSGI-INF/org.eclipse.osbp.infogrid.services.GridSourceFacadeImpl.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" activate="activate" deactivate="deactivate" immediate="true" name="org.eclipse.osbp.infogrid.services.GridSourceFacadeImpl">
+ <implementation class="org.eclipse.osbp.infogrid.services.GridSourceFacadeImpl"/>
+ <service>
+ <provide interface="org.eclipse.osbp.infogrid.api.IGridSourceFacade"/>
+ </service>
+ <reference bind="addDescriptorProvider" cardinality="0..n" interface="org.eclipse.osbp.infogrid.api.IGridSourceDescriptorProvider" name="DescriptorProvider" policy="dynamic" unbind="removeDescriptorProvider"/>
+ <reference bind="bindGridSourceCache" cardinality="1..1" interface="org.eclipse.osbp.infogrid.api.IGridSourceCache" name="GridSourceCache" policy="static" unbind="unbindGridSourceCache"/>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.infogrid.services/about.html b/org.eclipse.osbp.infogrid.services/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.services/about.ini b/org.eclipse.osbp.infogrid.services/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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.infogrid.services/about.mappings b/org.eclipse.osbp.infogrid.services/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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.infogrid.services/about.properties b/org.eclipse.osbp.infogrid.services/about.properties
new file mode 100644
index 0000000..512b00e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.services
+
+################ 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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.services/build.properties b/org.eclipse.osbp.infogrid.services/build.properties
new file mode 100644
index 0000000..17ab242
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/build.properties
@@ -0,0 +1,11 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\
+ .,\
+ LICENSE.txt,\
+ OSGI-INF/,\
+ epl-v10.html,\
+ license.html
+src.includes = about.properties, about.mappings, about.ini, about.html, license.html,\
+ epl-v10.html,\
+ LICENSE.txt
diff --git a/org.eclipse.osbp.infogrid.services/epl-v10.html b/org.eclipse.osbp.infogrid.services/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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.infogrid.services/license.html b/org.eclipse.osbp.infogrid.services/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/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™ 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.infogrid.services/pom.xml b/org.eclipse.osbp.infogrid.services/pom.xml
new file mode 100644
index 0000000..ecc0303
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.services</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceCache.java b/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceCache.java
new file mode 100644
index 0000000..95b2abd
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceCache.java
@@ -0,0 +1,210 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EPackage;
+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.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.osbp.infogrid.api.IGridSourceCache;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourceInput;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSourcePackage;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Component(immediate = true)
+public class GridSourceCache implements IGridSourceCache {
+
+ private static final Logger LOGGER = LoggerFactory
+ .getLogger(GridSourceCache.class);
+
+ private ResourceSet resourceSet;
+ private static final String URI_PATTERN = "local://%s";
+
+ @Activate
+ protected void activate(ComponentContext context) {
+ resourceSet = new ResourceSetImpl();
+
+ // do EMF registration
+ EPackage.Registry.INSTANCE.put(
+ CxGridSourcePackage.eINSTANCE.getNsURI(),
+ CxGridSourcePackage.eINSTANCE);
+ if (!Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap()
+ .containsKey("gridsource_xmi")) {
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+ "gridsource_xmi", new XMIResourceFactoryImpl());
+ }
+
+ }
+
+ @Deactivate
+ protected void deactivate(ComponentContext context) {
+ resourceSet.getResources().clear();
+ resourceSet = null;
+ }
+
+ @Override
+ public List<CxGridSource> getAllSources() {
+ List<CxGridSource> result = new ArrayList<>();
+ for (Resource resource : new ArrayList<>(resourceSet.getResources())) {
+ if (resource.getContents().isEmpty()) {
+ continue;
+ }
+ CxGridSource source = (CxGridSource) resource.getContents().get(0);
+ if (source == null) {
+ continue;
+ }
+
+ result.add(EcoreUtil.copy(source));
+ }
+ return result;
+ }
+
+ @Override
+ public CxGridSource getSource(String id) {
+ if (id == null) {
+ return null;
+ }
+ CxGridSource cxSource = resourceSet.getResources().stream()
+ .filter(r -> r.getContents().size() > 0)
+ .map(r -> (CxGridSource) r.getContents().get(0)).filter(g -> {
+ return id.equals(g.getId());
+ }).findFirst().orElse(null);
+
+ return cxSource != null ? EcoreUtil.copy(cxSource) : null;
+ }
+
+ @Override
+ public List<CxGridSource> getSources(Class<?> inputType) {
+ if (inputType == null) {
+ return Collections.emptyList();
+ }
+
+ List<CxGridSource> result = new ArrayList<>();
+ for (Resource resource : new ArrayList<>(resourceSet.getResources())) {
+ if (resource.getContents().isEmpty()) {
+ continue;
+ }
+ CxGridSource source = (CxGridSource) resource.getContents().get(0);
+ if (source == null) {
+ continue;
+ }
+
+ if (isFor(source, inputType)) {
+ result.add(EcoreUtil.copy(source));
+ }
+ }
+
+ return result;
+ }
+
+ private boolean isFor(CxGridSource source, Class<?> inputType) {
+ for (CxGridSourceInput input : source.getInputs()) {
+ if (input.getInputTypeFQN() != null
+ && inputType.getCanonicalName().equals(
+ input.getInputTypeFQN())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void registerSources(List<URL> urls) {
+ registerModels(urls);
+ }
+
+ @Override
+ public void unregisterSources(List<URL> urls) {
+ unregisterModels(urls);
+ }
+
+ @Override
+ public void registerSource(CxGridSource source) {
+ if (source == null) {
+ return;
+ }
+
+ if (source.getId() == null) {
+ LOGGER.warn("CxGridSource does not contain id. Is skipped!");
+ return;
+ }
+
+ Resource resource = resourceSet.getResource(
+ URI.createURI(createLocalURI(source)), false);
+ if (resource == null) {
+ resource = resourceSet.createResource(URI
+ .createURI(createLocalURI(source)));
+ resource.getContents().add(source);
+ }
+ }
+
+ @Override
+ public void unregisterSource(CxGridSource source) {
+ if (source == null) {
+ return;
+ }
+
+ if (source.getId() == null) {
+ LOGGER.warn("CxGridSource does not contain id. Is skipped!");
+ return;
+ }
+
+ Resource resource = resourceSet.getResource(
+ URI.createURI(createLocalURI(source)), false);
+ if (resource != null) {
+ resourceSet.getResources().remove(resource);
+ }
+ }
+
+ private static String createLocalURI(CxGridSource source) {
+ return String.format(URI_PATTERN, source.getId());
+ }
+
+ private void registerModels(List<URL> urls) {
+ for (URL url : urls) {
+ Resource resource = resourceSet.getResource(
+ URI.createURI(url.toString()), true);
+ try {
+ resource.load(null);
+ } catch (IOException e) {
+ LOGGER.error("{}", e);
+ }
+ }
+ }
+
+ private void unregisterModels(List<URL> urls) {
+ for (URL url : urls) {
+ Resource resource = resourceSet.getResource(
+ URI.createURI(url.toString()), false);
+ if (resource != null) {
+ resource.unload();
+ resourceSet.getResources().remove(resource);
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceCacheBuilder.java b/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceCacheBuilder.java
new file mode 100644
index 0000000..1cd5111
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceCacheBuilder.java
@@ -0,0 +1,157 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.osbp.infogrid.api.IGridSourceCache;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.wiring.BundleWiring;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.util.tracker.BundleTracker;
+import org.osgi.util.tracker.BundleTrackerCustomizer;
+
+/**
+ * OSBP uses ECView files directly and does not derive them from the
+ * UiDSL-Model. If you have interest using this feature, just provide that class
+ * as an OSGi service.
+ */
+@Component(immediate = true)
+public class GridSourceCacheBuilder {
+
+ private static final String OSBP_MODEL_EXTENDER = "Factory-Model";
+ @SuppressWarnings("unused")
+ private ComponentContext context;
+
+ private BundleTracker<List<URL>> tracker;
+ private IGridSourceCache cache;
+
+ public GridSourceCacheBuilder() {
+
+ }
+
+ @Activate
+ protected void activate(ComponentContext context) {
+ this.context = context;
+ tracker = new BundleTracker<>(context.getBundleContext(),
+ stateCreteria(), new Customizer());
+ tracker.open();
+ }
+
+ protected int stateCreteria() {
+ return Bundle.RESOLVED | Bundle.STARTING | Bundle.ACTIVE
+ | Bundle.STOPPING;
+ }
+
+ @Deactivate
+ protected void deactivate(ComponentContext context) {
+ tracker.close();
+ this.context = null;
+ }
+
+ /**
+ * Returns true, if the bundle contains the header.
+ *
+ * @param bundle
+ * @param header
+ * @return
+ */
+ private boolean containsHeader(Bundle bundle, String header) {
+ Dictionary<String, String> headers = bundle.getHeaders();
+ Enumeration<String> keys = headers.keys();
+ while (keys.hasMoreElements()) {
+ String key = keys.nextElement();
+ if (key.equals(header)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Searches for all ECView translations in the given bundle.
+ *
+ * @param bundle
+ * @return
+ */
+ private List<URL> internalFindURLs(Bundle bundle) {
+ List<URL> results = new ArrayList<URL>();
+ BundleWiring wiring = bundle.adapt(BundleWiring.class);
+ results.addAll(wiring.findEntries("/", "*.gridsource_xmi",
+ BundleWiring.LISTRESOURCES_RECURSE));
+
+ Set<String> fragments = new HashSet<String>();
+ for (Iterator<URL> iterator = results.iterator(); iterator.hasNext();) {
+ URL url = iterator.next();
+ URI uri = URI.createURI(url.toString());
+ if (fragments.contains(uri.lastSegment())) {
+ iterator.remove();
+ }
+ fragments.add(uri.lastSegment());
+ }
+ return results;
+ }
+
+ @Reference(cardinality = ReferenceCardinality.MANDATORY, policy = ReferencePolicy.STATIC, unbind = "unbindGridSourceCache")
+ protected void bindGridSourceCache(IGridSourceCache cache) {
+ this.cache = cache;
+ }
+
+ protected void unbindGridSourceCache(IGridSourceCache cache) {
+ this.cache = null;
+ tracker.close();
+ tracker = null;
+ }
+
+ private class Customizer implements BundleTrackerCustomizer<List<URL>> {
+
+ @Override
+ public List<URL> addingBundle(Bundle bundle, BundleEvent event) {
+ if (!containsHeader(bundle, OSBP_MODEL_EXTENDER)) {
+ return null;
+ }
+
+ List<URL> urls = internalFindURLs(bundle);
+ cache.registerSources(urls);
+ return urls;
+ }
+
+ @Override
+ public void modifiedBundle(Bundle bundle, BundleEvent event,
+ List<URL> object) {
+
+ }
+
+ @Override
+ public void removedBundle(Bundle bundle, BundleEvent event,
+ List<URL> urls) {
+ cache.unregisterSources(urls);
+ }
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceFacadeImpl.java b/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceFacadeImpl.java
new file mode 100644
index 0000000..8f85c36
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.services/src/org/eclipse/osbp/infogrid/services/GridSourceFacadeImpl.java
@@ -0,0 +1,160 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.services;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.osbp.infogrid.api.IGridSourceCache;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor.ConfigCallback;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptorProvider;
+import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+
+@Component(immediate = true)
+public class GridSourceFacadeImpl implements IGridSourceFacade {
+
+ private ComponentContext context;
+ private List<ServiceReference<IGridSourceDescriptorProvider>> descriptorFactories = new ArrayList<>();
+
+ private IGridSourceCache cache;
+
+ @Activate
+ protected void activate(ComponentContext context) {
+ this.context = context;
+ }
+
+ @Deactivate
+ protected void deactivate(ComponentContext context) {
+ this.context = null;
+ }
+
+ @Override
+ public CxGridSource getSource(String id) {
+ CxGridSource source = cache.getSource(id);
+ return source != null ? EcoreUtil.copy(source) : null;
+ }
+
+ @Override
+ public List<CxGridSource> getSources(Class<?> inputType) {
+ List<CxGridSource> sources = cache.getSources(inputType);
+ if (sources == null) {
+ return Collections.emptyList();
+ }
+
+ List<CxGridSource> copies = new ArrayList<CxGridSource>(sources.size());
+ for (CxGridSource source : sources) {
+ copies.add(EcoreUtil.copy(source));
+ }
+
+ return copies;
+ }
+
+ @Override
+ public IGridSourceDescriptor getDescriptor(Class<?> inputType, String sourceId,
+ IGridSourceDescriptor.ConfigCallback callback) {
+ CxGridSource cxSource = getSource(sourceId);
+ if (cxSource == null) {
+ return null;
+ }
+
+ return getDescriptor(inputType, cxSource, null);
+ }
+
+ public IGridSourceDescriptor getDescriptor(Class<?> inputType,
+ CxGridSource cxSource, IGridSourceDescriptor.ConfigCallback callback) {
+ List<ServiceReference<IGridSourceDescriptorProvider>> temp = new ArrayList<>(
+ descriptorFactories);
+
+ // try to find a descriptor provider that handles the gridSourceId
+ // directly
+ for (ServiceReference<IGridSourceDescriptorProvider> ref : temp) {
+ String prop = (String) ref
+ .getProperty(IGridSourceDescriptorProvider.PROP_KIND);
+ if (prop != null && prop.equals(cxSource.getId())) {
+ return createDescriptor(ref, inputType, cxSource, callback);
+ }
+ }
+
+ // try to find a descriptor provider that handles the type
+ for (ServiceReference<IGridSourceDescriptorProvider> ref : temp) {
+ String prop = (String) ref
+ .getProperty(IGridSourceDescriptorProvider.PROP_KIND);
+ if (prop != null && prop.equals(cxSource.getKind())) {
+ return createDescriptor(ref, inputType, cxSource, callback);
+ }
+ }
+
+ return null;
+ }
+
+ private IGridSourceDescriptor createDescriptor(
+ ServiceReference<IGridSourceDescriptorProvider> ref,
+ Class<?> inputType, CxGridSource cxSource, IGridSourceDescriptor.ConfigCallback callback) {
+ IGridSourceDescriptorProvider provider = context.getBundleContext()
+ .getService(ref);
+ return provider.createDescriptor(inputType, cxSource, callback);
+ }
+
+ @Override
+ public List<IGridSourceDescriptor> getDescriptors(Class<?> inputType,
+ IGridSourceDescriptor.ConfigCallback callback) {
+ List<CxGridSource> sources = getSources(inputType);
+ if (sources.isEmpty()) {
+ return Collections.emptyList();
+ }
+
+ List<IGridSourceDescriptor> result = new ArrayList<>(sources.size());
+ for (CxGridSource source : sources) {
+ IGridSourceDescriptor descriptor = getDescriptor(inputType, source,
+ callback);
+ if (descriptor != null) {
+ result.add(descriptor);
+ }
+ }
+
+ return result;
+ }
+
+ @Reference(service = IGridSourceDescriptorProvider.class, cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC, unbind = "removeDescriptorProvider")
+ protected void addDescriptorProvider(
+ ServiceReference<IGridSourceDescriptorProvider> ref) {
+ descriptorFactories.add(ref);
+ }
+
+ protected void removeDescriptorProvider(
+ ServiceReference<IGridSourceDescriptorProvider> ref) {
+ descriptorFactories.remove(ref);
+ }
+
+ @Reference(cardinality = ReferenceCardinality.MANDATORY, policy = ReferencePolicy.STATIC, unbind = "unbindGridSourceCache")
+ protected void bindGridSourceCache(IGridSourceCache cache) {
+ this.cache = cache;
+ }
+
+ protected void unbindGridSourceCache(IGridSourceCache cache) {
+ this.cache = null;
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/.project b/org.eclipse.osbp.infogrid.vaaclipse/.project
new file mode 100644
index 0000000..f23801f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.vaaclipse</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.infogrid.vaaclipse/LICENSE.txt b/org.eclipse.osbp.infogrid.vaaclipse/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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.infogrid.vaaclipse/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.vaaclipse/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..831e2b9
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.vaaclipse
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.vaaclipse
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: javax.annotation;bundle-version="[1.1.0,1.2.0)",
+ javax.inject,
+ org.eclipse.e4.core.contexts,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.core.di,
+ com.vaadin.server;bundle-version="7.5.7",
+ com.vaadin.shared;bundle-version="7.5.7",
+ org.jsoup;bundle-version="1.7.2",
+ org.eclipse.e4.core.services,
+ org.eclipse.osbp.runtime.web.vaadin.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.vaadin;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.infogrid.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.vaaclipse.common.ecview;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.vaaclipse.common.ecview.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.dto.lib;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.eventbroker,
+ org.eclipse.osbp.ecview.extension.grid.model,
+ org.eclipse.osbp.ecview.core.util.emf;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.datatype.lib;bundle-version="[0.9.0,0.10.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: org.eclipse.osbp.ui.api.user;version="0.9.0",
+ org.osgi.framework;version="1.8.0",
+ org.osgi.service.event;version="1.2.0",
+ org.slf4j;resolution:=optional
+Export-Package: org.eclipse.osbp.infogrid.vaaclipse;version="0.9.0"
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/about.html b/org.eclipse.osbp.infogrid.vaaclipse/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.vaaclipse/about.ini b/org.eclipse.osbp.infogrid.vaaclipse/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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.infogrid.vaaclipse/about.mappings b/org.eclipse.osbp.infogrid.vaaclipse/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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.infogrid.vaaclipse/about.properties b/org.eclipse.osbp.infogrid.vaaclipse/about.properties
new file mode 100644
index 0000000..51eda0d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.vaaclipse
+
+################ 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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/build.properties b/org.eclipse.osbp.infogrid.vaaclipse/build.properties
new file mode 100644
index 0000000..c13e5be
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\
+ .,\
+ LICENSE.txt,\
+ epl-v10.html,\
+ license.html
+src.includes = about.properties, about.mappings, about.ini, about.html, epl-v10.html,\
+ license.html,\
+ LICENSE.txt
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/epl-v10.html b/org.eclipse.osbp.infogrid.vaaclipse/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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.infogrid.vaaclipse/license.html b/org.eclipse.osbp.infogrid.vaaclipse/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/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™ 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.infogrid.vaaclipse/pom.xml b/org.eclipse.osbp.infogrid.vaaclipse/pom.xml
new file mode 100644
index 0000000..9743c9f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.vaaclipse</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/ContentCache.java b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/ContentCache.java
new file mode 100644
index 0000000..de8934f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/ContentCache.java
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.vaaclipse;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.osbp.runtime.common.dispose.AbstractDisposable;
+import org.eclipse.osbp.infogrid.vaadin.GridComponent;
+
+public class ContentCache extends AbstractDisposable {
+
+ private Map<Class<?>, GridComponent> cache = new HashMap<>();
+
+ public GridComponent getActiveContent(Class<?> rootClass) {
+ checkDisposed();
+ return cache.get(rootClass);
+ }
+
+ public void putActiveContent(Class<?> rootClass, GridComponent content) {
+ checkDisposed();
+ cache.put(rootClass, content);
+ }
+
+ public boolean containsContent(Class<?> rootClass) {
+ return cache.containsKey(rootClass);
+ }
+
+ @Override
+ protected void internalDispose() {
+ for (GridComponent comp : cache.values()) {
+ comp.dispose();
+ }
+
+ cache.clear();
+ cache = null;
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/InfoGridView.java b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/InfoGridView.java
new file mode 100644
index 0000000..4bbb763
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/InfoGridView.java
@@ -0,0 +1,411 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.vaaclipse;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+
+import org.eclipse.e4.core.contexts.Active;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.osbp.dsl.common.datatypes.IDto;
+import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
+import org.eclipse.osbp.dsl.dto.lib.services.IDTOService;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.infogrid.vaadin.GridComponent;
+import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventHandler;
+
+import com.vaadin.ui.Component;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.VerticalLayout;
+
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+
+public class InfoGridView {
+
+ @Inject
+ private IEventBroker eventBroker;
+ @Inject
+ IEclipseContext context;
+ @Inject
+ private VerticalLayout parentLayout;
+ @Inject
+ private org.eclipse.e4.core.services.events.IEventBroker e4EventBroker;
+ @Inject
+ private IGridSourceFacade gridSourceService;
+ @Inject
+ private IECViewSessionHelper ecviewPropsProvider;
+ @Inject
+ private EModelService modelService;
+ @Inject
+ private ITypeProviderService bundleSpaceTypeProvider;
+
+ private ContentCache cache;
+
+ protected CssLayout layout;
+ protected MPart activeMPart;
+ protected String activeContentID;
+ protected Component activeContent;
+ private EventHandler inputEventHandler;
+ private Class<?> inputClass;
+ private GridComponent currentComponent;
+
+ // snapshots of perspectives state to reset
+ private Map<MPerspective, StateSnapshot> stateSnapshots = new HashMap<MPerspective, InfoGridView.StateSnapshot>();
+
+ @PostConstruct
+ protected void setup() {
+ cache = new ContentCache();
+
+ layout = new CssLayout();
+ layout.setSizeFull();
+ parentLayout.setMargin(true);
+ parentLayout.setSpacing(true);
+ parentLayout.addComponent(layout);
+
+ inputEventHandler = new EventHandler() {
+ @Override
+ public void handleEvent(Event event) {
+ Object data = event.getProperty(IEventBroker.DATA);
+ if (data instanceof EventBrokerMsg) {
+ EventBrokerMsg msg = (EventBrokerMsg) data;
+ String dtoClassFqn = getDtoName(msg.getName());
+ if (dtoClassFqn.isEmpty()) {
+ return;
+ } else {
+
+ Class<?> dtoClass = bundleSpaceTypeProvider.forName(
+ null, dtoClassFqn);
+ setInput(dtoClass, msg.getId());
+ }
+ } else if (data instanceof IDto) {
+ String id = event.getTopic().split("/")[0];
+ setInput(data.getClass(), id);
+ }
+ }
+ };
+ e4EventBroker.subscribe(EventBrokerMsg.AUTOWIRED_ENTITY_PREFIX + "*",
+ inputEventHandler);
+ }
+
+ /**
+ * Converts the entity name to the dto name.
+ *
+ * @param entityName
+ * @return TODO NamingConventions replace me later!
+ */
+ private String getDtoName(String entityName) {
+ String dtoName = null;
+ if (entityName == null) {
+ return "";
+ }
+ if (entityName.contains("entities")) {
+ dtoName = entityName.replace("entities", "dtos");
+ } else {
+ dtoName = entityName + ".dtos";
+ }
+
+ dtoName = dtoName.concat("Dto");
+
+ return dtoName;
+ }
+
+ /**
+ * Perspective was switches. Return to last state of perspective.
+ *
+ * @param perspective
+ */
+ @Inject
+ protected void activatePerspective(
+ @Optional @Active MPerspective perspective) {
+ restoreForSnapshot(perspective);
+ }
+
+ /**
+ * Sets the new input value.
+ *
+ * @param dtoClass
+ * @param id
+ */
+ private void setInput(Class<?> dtoClass, Object id) {
+ Class<?> oldInputClass = this.inputClass;
+ inputClass = dtoClass;
+
+ if (oldInputClass != inputClass) {
+
+ // reset layout
+ layout.removeAllComponents();
+ currentComponent = null;
+
+ if (inputClass != null) {
+ currentComponent = getGridComponent(inputClass);
+ if (currentComponent != null) {
+ layout.addComponent(currentComponent);
+ }
+ }
+ }
+
+ if (currentComponent != null) {
+ Object dtoInstance = getDTO(dtoClass, (String) id);
+ currentComponent.setValue(dtoInstance);
+
+ // create a snapshot for later use on perspective switch
+ MPerspective activePerspective = findActivePerspective();
+ // update snapshot info for restore on perspective switch
+ updateSnapshot(dtoClass, id, activePerspective, currentComponent);
+ } else {
+ MPerspective activePerspective = findActivePerspective();
+ resetSnapshot(activePerspective);
+ }
+ }
+
+ /**
+ * Returns the dto for the given class and id.
+ *
+ * @param dtoClass
+ * @param id
+ * @return
+ */
+ @SuppressWarnings("restriction")
+ private Object getDTO(Class<?> dtoClass, String id) {
+ IDTOService<?> dtoService = DtoServiceAccess.getService(dtoClass);
+ Object dtoInstance = null;
+ if (id != null) {
+ try {
+ dtoInstance = dtoService.get((int) Double.parseDouble(id));
+ } catch (NumberFormatException e) {
+ dtoInstance = dtoService.get(id);
+ }
+ }
+ // Object dtoInstance = id != null ? dtoService.get(id) : null;
+ return dtoInstance;
+ }
+
+ private MPerspective findActivePerspective() {
+ // EObject part = (EObject) partService.getActivePart();
+ // if (part == null) {
+ // return null;
+ // }
+ // EObject current = part;
+ // while (current.eContainer() != null) {
+ // current = current.eContainer();
+ // if (current instanceof MPerspective) {
+ // return (MPerspective) current;
+ // }
+ // }
+ return modelService.getActivePerspective(context.get(MWindow.class));
+ }
+
+ /**
+ * Updates the snapshot info.
+ *
+ * @param dtoClass
+ * @param id
+ * @param activePerspective
+ * @param currentComponent
+ */
+ private void updateSnapshot(Class<?> dtoClass, Object id,
+ MPerspective activePerspective, GridComponent currentComponent) {
+ // update the snapshot
+ stateSnapshots.put(activePerspective, new StateSnapshot(
+ activePerspective, dtoClass, id, currentComponent));
+ }
+
+ /**
+ * Restores UI for the given activePerspective.
+ *
+ * @param activePerspective
+ */
+ private void restoreForSnapshot(MPerspective activePerspective) {
+ StateSnapshot snapshot = stateSnapshots.get(activePerspective);
+ if (snapshot != null) {
+
+ inputClass = snapshot.dtoClass;
+ currentComponent = snapshot.component;
+ layout.removeAllComponents();
+ layout.addComponent(currentComponent);
+ currentComponent.setValue(getDTO(snapshot.dtoClass,
+ (String) snapshot.id));
+ setInput(snapshot.dtoClass, snapshot.id);
+
+ } else {
+ if (layout != null) {
+ layout.removeAllComponents();
+ }
+ inputClass = null;
+ currentComponent = null;
+ }
+ }
+
+ /**
+ * Removes the snapshot information.
+ *
+ * @param activePerspective
+ */
+ private void resetSnapshot(MPerspective activePerspective) {
+ stateSnapshots.remove(activePerspective);
+ }
+
+ /**
+ * Returns the grid component for the given inputclass.
+ *
+ * @param inputClass
+ * @return
+ */
+ protected GridComponent getGridComponent(Class<?> inputClass) {
+ if (inputClass == null) {
+ return null;
+ }
+
+ GridComponent component;
+ if (cache.containsContent(inputClass)) {
+ component = cache.getActiveContent(inputClass);
+ } else {
+ component = createComponent(inputClass);
+ }
+ return component;
+ }
+
+ private GridComponent createComponent(Class<?> inputClass) {
+ // create the component and register it at the cache
+ //
+ GridComponent component = new GridComponent();
+ component.setSizeFull();
+ cache.putActiveContent(inputClass, component);
+
+ // set the descriptors to the component
+ //
+ List<IGridSourceDescriptor> descriptors = createGridSourceDescriptors(inputClass);
+ component.setSourceDescriptors(descriptors);
+
+ return component;
+ }
+
+ /**
+ * Uses the IGridSourceService to create the descriptors that should be used
+ * for the input class.
+ *
+ * @param inputClass
+ * @return
+ */
+ protected List<IGridSourceDescriptor> createGridSourceDescriptors(
+ Class<?> inputClass) {
+ List<IGridSourceDescriptor> descriptors = gridSourceService
+ .getDescriptors(inputClass,
+ new IGridSourceDescriptor.ConfigCallback() {
+ @Override
+ public Map<String, Object> getProperties(
+ IGridSourceDescriptor descriptor) {
+ CxGridSource cxSource = descriptor.getSource();
+ if (cxSource.getKind().equals(
+ IGridSourceDescriptor.KIND_ECVIEW)) {
+ return createECViewProperties(descriptor);
+ }
+ return null;
+ }
+ });
+ return descriptors;
+ }
+
+ /**
+ * Creates the ecview properties to properly config the descriptor.
+ *
+ * @param descriptor
+ * @return
+ */
+ protected Map<String, Object> createECViewProperties(
+ IGridSourceDescriptor descriptor) {
+ return ecviewPropsProvider.createBasicProperties();
+ }
+
+ @PreDestroy
+ protected void destroy() {
+
+ eventBroker.unsubscribe(inputEventHandler);
+ inputEventHandler = null;
+
+ stateSnapshots.clear();
+ stateSnapshots = null;
+
+ if (cache != null) {
+ cache.dispose();
+ cache = null;
+ }
+
+ }
+
+ protected BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+ private static class StateSnapshot {
+ private final MPerspective perspective;
+ private final Class<?> dtoClass;
+ private final Object id;
+ private final GridComponent component;
+
+ public StateSnapshot(MPerspective perspective, Class<?> dtoClass,
+ Object id, GridComponent component) {
+ super();
+ this.perspective = perspective;
+ this.dtoClass = dtoClass;
+ this.id = id;
+ this.component = component;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result
+ + ((perspective == null) ? 0 : perspective.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;
+ StateSnapshot other = (StateSnapshot) obj;
+ if (perspective == null) {
+ if (other.perspective != null)
+ return false;
+ } else if (!perspective.equals(other.perspective))
+ return false;
+ return true;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.java b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.java
new file mode 100644
index 0000000..a419a9f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridComponent.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.infogrid.vaaclipse;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
+import org.eclipse.osbp.dsl.dto.lib.services.IDTOService;
+import org.eclipse.osbp.ecview.extension.grid.CxGrid;
+import org.eclipse.osbp.ecview.extension.grid.CxGridPackage;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.infogrid.api.IECViewGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IECViewGridSourceDescriptor.EditorSavedStrategy;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.vaadin.ui.Component;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.CustomComponent;
+
+@SuppressWarnings({ "restriction", "serial" })
+public class SingleInfoGridComponent extends CustomComponent implements
+ EditorSavedStrategy {
+
+ final static Logger LOGGER = LoggerFactory
+ .getLogger(SingleInfoGridComponent.class);
+
+ @Inject
+ IEventBroker eventBroker;
+ @Inject
+ IEclipseContext context;
+ @Inject
+ IGridSourceFacade gridSourceService;
+ @Inject
+ IECViewSessionHelper ecviewPropsProvider;
+ @Inject
+ ITypeProviderService bundleSpaceTypeProvider;
+ @Inject
+ Locale locale;
+ @Inject
+ @Optional
+ @Named("gridSourceId")
+ String gridSourceId;
+ @Inject
+ @Optional
+ @Named("inputdata")
+ private List<?> inputdata;
+
+ protected CssLayout layout;
+ protected Component activeContent;
+ private IECViewGridSourceDescriptor descriptor;
+ private Class<?> rootType;
+ private IDTOService<Object> dtoService;
+
+ // public Component createGrid(String gridSourceId,
+ // IGridSourceFacade gridSourceService,
+ // IECViewSessionHelper ecviewPropsProvider,
+ // ITypeProviderService bundleSpaceTypeProvider, IUser user) {
+ // this.gridSourceService = gridSourceService;
+ // this.ecviewPropsProvider = ecviewPropsProvider;
+ // this.bundleSpaceTypeProvider = bundleSpaceTypeProvider;
+ //
+ // descriptor = createGridSourceDescriptor(gridSourceId);
+ // descriptor.setLocale(user.getLocale());
+ // descriptor.setInput(inputdata);
+ // if (descriptor != null) {
+ // return createComponent(gridSourceId);
+ // } else {
+ // log.error("gridsource not available:" + gridSourceId);
+ // }
+ // return null;
+ // }
+
+ @PostConstruct
+ protected void setup() {
+
+ if (gridSourceId != null) {
+ descriptor = createGridSourceDescriptor(gridSourceId);
+ if (descriptor != null) {
+ layout = new CssLayout();
+ layout.setSizeFull();
+ Component grid = createComponent(gridSourceId);
+ layout.addComponent(grid);
+ setCompositionRoot(layout);
+ } else {
+ LOGGER.error("gridsource not available:" + gridSourceId);
+ }
+ }
+ }
+
+ protected Component createComponent(String gridSourceId) {
+ Component component = null;
+ if (descriptor != null) {
+ setupSaveStrategy();
+
+ component = (Component) descriptor.getComponent();
+ component.setSizeFull();
+ String topic = createTopic();
+ CxGrid grid = descriptor.getGrid();
+
+ // if there is inputdata, just put it into the grids collection
+ if (inputdata != null) {
+ grid.getCollection().addAll(inputdata);
+ }
+ grid.eAdapters().add(new AdapterImpl() {
+ @Override
+ public void notifyChanged(Notification msg) {
+ if (msg.getFeature() == CxGridPackage.Literals.CX_GRID__SELECTION) {
+ eventBroker.send(topic, msg.getNewValue());
+ }
+ }
+ });
+ }
+ return component;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected void setupSaveStrategy() {
+ descriptor.setEditorSavedStrategy(this);
+ dtoService = (IDTOService<Object>) DtoServiceAccess
+ .getService(rootType);
+ }
+
+ @Override
+ public void editorSaved(Object value) {
+ if (dtoService != null) {
+ dtoService.update(value);
+ }
+ }
+
+ protected String createTopic() {
+ String fqn = descriptor.getSource().getRootTypeFQN();
+ fqn = fqn.substring(fqn.lastIndexOf(".") + 1, fqn.length()).replaceAll(
+ "Dto", "");
+ return EventBrokerMsg.AUTOWIRED_ENTITY_PREFIX + fqn;
+ }
+
+ /**
+ * Uses the IGridSourceService to create the descriptor that should be used
+ * for the given id.
+ *
+ * @param sourceId
+ * @return
+ */
+ protected IECViewGridSourceDescriptor createGridSourceDescriptor(
+ String sourceId) {
+
+ CxGridSource gridSource = gridSourceService.getSource(sourceId);
+ gridSource.getTags().add(IGridSourceDescriptor.TAG__SINGLE_GRID);
+ rootType = bundleSpaceTypeProvider.forName(null,
+ gridSource.getRootTypeFQN());
+ IGridSourceDescriptor descriptor = gridSourceService.getDescriptor(
+ rootType, gridSource,
+ new IGridSourceDescriptor.ConfigCallback() {
+ @Override
+ public Map<String, Object> getProperties(
+ IGridSourceDescriptor descriptor) {
+ CxGridSource cxSource = descriptor.getSource();
+ if (cxSource.getKind().equals(
+ IGridSourceDescriptor.KIND_ECVIEW)) {
+ return createECViewProperties(descriptor);
+ }
+ return null;
+ }
+ });
+ descriptor.setLocale(locale);
+ return (IECViewGridSourceDescriptor) descriptor;
+ }
+
+ /**
+ * Creates the ecview properties to properly config the descriptor.
+ *
+ * @param descriptor
+ * @return
+ */
+ protected Map<String, Object> createECViewProperties(
+ IGridSourceDescriptor descriptor) {
+ Map<String, Object> props = ecviewPropsProvider.createBasicProperties();
+ if (inputdata != null) {
+ props.put(IECViewGridSourceDescriptor.PROP_MANUAL_BEANS, true);
+ }
+ return props;
+ }
+
+ @PreDestroy
+ protected void destroy() {
+ if (descriptor != null) {
+ descriptor.dispose();
+ descriptor = null;
+ }
+ }
+
+ public List<?> getInputData() {
+ return inputdata;
+ }
+
+ public void setInputData(List<?> inputData) {
+ this.inputdata = inputData;
+ }
+
+ protected BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridView.java b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridView.java
new file mode 100644
index 0000000..5a0e2db
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaaclipse/src/org/eclipse/osbp/infogrid/vaaclipse/SingleInfoGridView.java
@@ -0,0 +1,242 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.vaaclipse;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.osbp.dsl.dto.lib.impl.DtoServiceAccess;
+import org.eclipse.osbp.dsl.dto.lib.services.IDTOService;
+import org.eclipse.osbp.ecview.extension.grid.CxGrid;
+import org.eclipse.osbp.ecview.extension.grid.CxGridPackage;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.infogrid.api.IECViewGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IECViewGridSourceDescriptor.EditorSavedStrategy;
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+import org.eclipse.osbp.infogrid.api.IGridSourceFacade;
+import org.eclipse.osbp.infogrid.model.gridsource.CxGridSource;
+import org.eclipse.osbp.runtime.common.types.ITypeProviderService;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.vaaclipse.common.ecview.api.IECViewSessionHelper;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.vaadin.ui.Component;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.VerticalLayout;
+
+@SuppressWarnings("restriction")
+public class SingleInfoGridView implements EditorSavedStrategy {
+
+ final static Logger LOGGER = LoggerFactory
+ .getLogger(SingleInfoGridView.class);
+
+ @Inject
+ IEventBroker eventBroker;
+ @Inject
+ IEclipseContext context;
+ @Inject
+ VerticalLayout parentLayout;
+ @Inject
+ IGridSourceFacade gridSourceService;
+ @Inject
+ IECViewSessionHelper ecviewPropsProvider;
+ @Inject
+ MPart mPart;
+ @Inject
+ ITypeProviderService bundleSpaceTypeProvider;
+ @Inject
+ IUser user;
+ @Inject
+ @Optional
+ @Named("gridSourceId")
+ String gridSourceId;
+ @Inject
+ @Optional
+ @Named("inputdata")
+ private List<?> inputdata;
+
+ protected CssLayout layout;
+ protected Component activeContent;
+ private IECViewGridSourceDescriptor descriptor;
+ private Class<?> rootType;
+ private IDTOService<Object> dtoService;
+
+ public Component createGrid(String gridSourceId,
+ IGridSourceFacade gridSourceService,
+ IECViewSessionHelper ecviewPropsProvider,
+ ITypeProviderService bundleSpaceTypeProvider, IUser user) {
+ this.gridSourceService = gridSourceService;
+ this.ecviewPropsProvider = ecviewPropsProvider;
+ this.bundleSpaceTypeProvider = bundleSpaceTypeProvider;
+
+ descriptor = createGridSourceDescriptor(gridSourceId);
+ descriptor.setLocale(user.getLocale());
+ descriptor.setInput(inputdata);
+ if (descriptor != null) {
+ return createComponent(gridSourceId);
+ } else {
+ LOGGER.error("gridsource not available:" + gridSourceId);
+ }
+ return null;
+ }
+
+ @PostConstruct
+ protected void setup() {
+
+ // first we check the context, whether a gridSourceId was injected
+ if (gridSourceId == null || gridSourceId.isEmpty()) {
+ // if we could not find an injected gridSourceId, then lets check
+ // the mPart for it.
+ gridSourceId = mPart.getPersistedState().get("gridSourceId");
+ }
+
+ if (gridSourceId != null) {
+ descriptor = createGridSourceDescriptor(gridSourceId);
+ if (descriptor != null) {
+ layout = new CssLayout();
+ layout.setSizeFull();
+ parentLayout.setMargin(true);
+ parentLayout.setSpacing(true);
+ parentLayout.addComponent(layout);
+ Component grid = createComponent(gridSourceId);
+ layout.addComponent(grid);
+ } else {
+ LOGGER.error("gridsource not available:" + gridSourceId);
+ }
+ }
+ }
+
+ protected Component createComponent(String gridSourceId) {
+ Component component = null;
+ if (descriptor != null) {
+ setupSaveStrategy();
+
+ component = (Component) descriptor.getComponent();
+ component.setSizeFull();
+ String topic = createTopic();
+ CxGrid grid = descriptor.getGrid();
+ grid.eAdapters().add(new AdapterImpl() {
+ @Override
+ public void notifyChanged(Notification msg) {
+ if (msg.getFeature() == CxGridPackage.Literals.CX_GRID__SELECTION) {
+ eventBroker.send(topic, msg.getNewValue());
+ }
+ }
+ });
+ }
+ return component;
+ }
+
+ @SuppressWarnings("unchecked")
+ protected void setupSaveStrategy() {
+ descriptor.setEditorSavedStrategy(this);
+ dtoService = (IDTOService<Object>) DtoServiceAccess
+ .getService(rootType);
+ }
+
+ @Override
+ public void editorSaved(Object value) {
+ if (dtoService != null) {
+ dtoService.update(value);
+ }
+ }
+
+ protected String createTopic() {
+ String fqn = descriptor.getSource().getRootTypeFQN();
+ fqn = fqn.substring(fqn.lastIndexOf(".") + 1, fqn.length()).replaceAll(
+ "Dto", "");
+ return EventBrokerMsg.AUTOWIRED_ENTITY_PREFIX + fqn;
+ }
+
+ /**
+ * Uses the IGridSourceService to create the descriptor that should be used
+ * for the given id.
+ *
+ * @param sourceId
+ * @return
+ */
+ protected IECViewGridSourceDescriptor createGridSourceDescriptor(
+ String sourceId) {
+
+ CxGridSource gridSource = gridSourceService.getSource(sourceId);
+ gridSource.getTags().add(IGridSourceDescriptor.TAG__SINGLE_GRID);
+ rootType = bundleSpaceTypeProvider.forName(null,
+ gridSource.getRootTypeFQN());
+ IGridSourceDescriptor descriptor = gridSourceService.getDescriptor(
+ rootType, gridSource,
+ new IGridSourceDescriptor.ConfigCallback() {
+ @Override
+ public Map<String, Object> getProperties(
+ IGridSourceDescriptor descriptor) {
+ CxGridSource cxSource = descriptor.getSource();
+ if (cxSource.getKind().equals(
+ IGridSourceDescriptor.KIND_ECVIEW)) {
+ return createECViewProperties(descriptor);
+ }
+ return null;
+ }
+ });
+
+ return (IECViewGridSourceDescriptor) descriptor;
+ }
+
+ /**
+ * Creates the ecview properties to properly config the descriptor.
+ *
+ * @param descriptor
+ * @return
+ */
+ protected Map<String, Object> createECViewProperties(
+ IGridSourceDescriptor descriptor) {
+ Map<String, Object> props = ecviewPropsProvider.createBasicProperties();
+ if (inputdata != null) {
+ props.put(IECViewGridSourceDescriptor.PROP_MANUAL_BEANS, true);
+ }
+ return props;
+ }
+
+ @PreDestroy
+ protected void destroy() {
+ if (descriptor != null) {
+ descriptor.dispose();
+ descriptor = null;
+ }
+ }
+
+ public List<?> getInputData() {
+ return inputdata;
+ }
+
+ public void setInputData(List<?> inputData) {
+ this.inputdata = inputData;
+ }
+
+ protected BundleContext getBundleContext() {
+ return FrameworkUtil.getBundle(getClass()).getBundleContext();
+ }
+
+}
diff --git a/org.eclipse.osbp.infogrid.vaadin/.project b/org.eclipse.osbp.infogrid.vaadin/.project
new file mode 100644
index 0000000..48e70c1
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.infogrid.vaadin</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.infogrid.vaadin/LICENSE.txt b/org.eclipse.osbp.infogrid.vaadin/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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.infogrid.vaadin/META-INF/MANIFEST.MF b/org.eclipse.osbp.infogrid.vaadin/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..b7a4d51
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.infogrid.vaadin
+Bundle-SymbolicName: org.eclipse.osbp.infogrid.vaadin
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ com.vaadin.server;bundle-version="7.5.7",
+ com.vaadin.shared;bundle-version="7.5.7",
+ org.jsoup;bundle-version="1.7.2",
+ org.eclipse.osbp.infogrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.extension.grid.model,
+ org.eclipse.osbp.infogrid.model;bundle-version="[0.9.0,0.10.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.infogrid.vaadin;version="0.9.0"
diff --git a/org.eclipse.osbp.infogrid.vaadin/about.html b/org.eclipse.osbp.infogrid.vaadin/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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 ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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.infogrid.vaadin/about.ini b/org.eclipse.osbp.infogrid.vaadin/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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.infogrid.vaadin/about.mappings b/org.eclipse.osbp.infogrid.vaadin/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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.infogrid.vaadin/about.properties b/org.eclipse.osbp.infogrid.vaadin/about.properties
new file mode 100644
index 0000000..0854cb1
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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:
+# Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=org.eclipse.osbp.infogrid.vaadin
+
+################ 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\
+ Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.infogrid.vaadin/build.properties b/org.eclipse.osbp.infogrid.vaadin/build.properties
new file mode 100644
index 0000000..f15906e
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = target/classes/
+bin.includes = about.properties, about.mappings, about.ini, about.html, META-INF/,\
+ .,\
+ license.html,\
+ LICENSE.txt,\
+ epl-v10.html
+src.includes = about.properties, about.mappings, about.ini, about.html, license.html,\
+ LICENSE.txt,\
+ epl-v10.html
diff --git a/org.eclipse.osbp.infogrid.vaadin/epl-v10.html b/org.eclipse.osbp.infogrid.vaadin/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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.infogrid.vaadin/license.html b/org.eclipse.osbp.infogrid.vaadin/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/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™ 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.infogrid.vaadin/pom.xml b/org.eclipse.osbp.infogrid.vaadin/pom.xml
new file mode 100644
index 0000000..fa45b0d
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/pom.xml
@@ -0,0 +1,29 @@
+<?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.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.eclipse.osbp.infogrid.vaadin</artifactId>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <plugins>
+ </plugins>
+ </build>
+ <packaging>eclipse-plugin</packaging>
+
+</project>
diff --git a/org.eclipse.osbp.infogrid.vaadin/src/org/eclipse/osbp/infogrid/vaadin/GridComponent.java b/org.eclipse.osbp.infogrid.vaadin/src/org/eclipse/osbp/infogrid/vaadin/GridComponent.java
new file mode 100644
index 0000000..524c1fe
--- /dev/null
+++ b/org.eclipse.osbp.infogrid.vaadin/src/org/eclipse/osbp/infogrid/vaadin/GridComponent.java
@@ -0,0 +1,158 @@
+/**
+ *
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * 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.infogrid.vaadin;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.osbp.infogrid.api.IGridSourceDescriptor;
+
+import com.vaadin.data.Item;
+import com.vaadin.ui.AbstractSelect.ItemCaptionMode;
+import com.vaadin.ui.ComboBox;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.CustomComponent;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * This component needs configuration by IGridSourceDescriptor. They need to be
+ * added from outside logic.
+ */
+@SuppressWarnings("serial")
+public class GridComponent extends CustomComponent {
+
+ private ComboBox sourceSelector;
+ private CssLayout gridArea;
+
+ private List<IGridSourceDescriptor> sources;
+ private IGridSourceDescriptor currentSource;
+
+ private VerticalLayout layout;
+ private Object currentInput;
+
+ public GridComponent() {
+ initUI();
+ }
+
+ /**
+ * Initializes the UI.
+ */
+ protected void initUI() {
+
+ sourceSelector = new ComboBox();
+ sourceSelector.addContainerProperty("caption", String.class,
+ "undefined ID");
+ sourceSelector.addContainerProperty("gridSource",
+ IGridSourceDescriptor.class, null);
+
+ sourceSelector.setItemCaptionMode(ItemCaptionMode.PROPERTY);
+ sourceSelector.setItemCaptionPropertyId("caption");
+
+ sourceSelector.addValueChangeListener(e -> sourceChanged());
+
+ gridArea = new CssLayout();
+ gridArea.setSizeFull();
+
+ layout = new VerticalLayout(sourceSelector, gridArea);
+ layout.setExpandRatio(gridArea, 1.0f);
+ setCompositionRoot(layout);
+ }
+
+ /**
+ * Is called if the source became changed.
+ */
+ protected void sourceChanged() {
+ Item item = sourceSelector.getItem(sourceSelector.getValue());
+ if (item == null) {
+ setSelectedSource(null);
+ } else {
+ setSelectedSource((IGridSourceDescriptor) item.getItemProperty(
+ "gridSource").getValue());
+ }
+ }
+
+ /**
+ * Sets the selected source descriptor.
+ *
+ * @param source
+ */
+ public void setSelectedSource(IGridSourceDescriptor source) {
+ // TODO
+ // if (currentSource == source) {
+ // return;
+ // }
+
+ if (source != null && !sources.contains(source)) {
+ return;
+ }
+
+ currentSource = source;
+ gridArea.removeAllComponents();
+ if (currentSource != null) {
+ Component component = (Component) currentSource.getComponent();
+ component.setSizeFull();
+ gridArea.addComponent(component);
+ currentSource.setInput(currentInput);
+ }
+ }
+
+ /**
+ * Returns all descriptors.
+ *
+ * @return
+ */
+ public List<IGridSourceDescriptor> getSourceDescriptors() {
+ return Collections.unmodifiableList(sources);
+ }
+
+ /**
+ * Sets all available descriptors to this component. The descriptors are
+ * responsible to create the UI content.
+ *
+ * @param sources
+ */
+ @SuppressWarnings("unchecked")
+ public void setSourceDescriptors(List<IGridSourceDescriptor> sources) {
+ sourceSelector.removeAllItems();
+ for (IGridSourceDescriptor source : sources) {
+ Item item = sourceSelector.getItem(sourceSelector.addItem());
+ item.getItemProperty("caption").setValue(source.getId());
+ item.getItemProperty("gridSource").setValue(source);
+ }
+
+ this.sources = new ArrayList<>(sources);
+ }
+
+ /**
+ * Sets the value of the component.
+ *
+ * @param input
+ */
+ public void setValue(Object input) {
+ if (currentInput == input) {
+ return;
+ }
+ currentInput = input;
+
+ if (currentSource != null) {
+ currentSource.setInput(currentInput);
+ }
+ }
+
+ public void dispose() {
+
+ }
+
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..cefb0b7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,126 @@
+<?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 implementation 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>
+
+ <groupId>org.eclipse.osbp.infogrid</groupId>
+ <artifactId>org.eclipse.osbp.infogrid.aggregator</artifactId>
+ <packaging>pom</packaging>
+
+ <parent>
+ <groupId>org.eclipse.osbp.releng.maven</groupId>
+ <artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ </parent>
+
+ <url>${osbp.site.repository.url}</url>
+ <scm>
+ <url>${osbp.scm.url}</url>
+ <connection>${osbp.scm.connection}</connection>
+ <developerConnection>${osbp.scm.connection.dev}</developerConnection>
+ <tag>HEAD</tag>
+ </scm>
+ <distributionManagement>
+ <site>
+ <id>gh-pages</id>
+ <name>OSBP GitHub Pages</name>
+ <url>${distribution.site.url}</url>
+ </site>
+ </distributionManagement>
+
+ <properties>
+ <osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+ </properties>
+
+ <modules>
+ <module>org.eclipse.osbp.infogrid.api</module>
+ <module>org.eclipse.osbp.infogrid.ecview</module>
+ <module>org.eclipse.osbp.infogrid.model</module>
+ <module>org.eclipse.osbp.infogrid.model.edit</module>
+ <module>org.eclipse.osbp.infogrid.model.editor</module>
+ <module>org.eclipse.osbp.infogrid.services</module>
+<!-- <module>org.eclipse.osbp.infogrid.services.tests</module> -->
+ <module>org.eclipse.osbp.infogrid.vaaclipse</module>
+ <module>org.eclipse.osbp.infogrid.vaadin</module>
+
+ <module>org.eclipse.osbp.infogrid.feature</module>
+ </modules>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <resolver>p2</resolver>
+ <pomDependencies>consider</pomDependencies>
+ <environments>
+ <environment>
+ <os>win32</os>
+ <ws>win32</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+ <arch>x86_64</arch>
+ </environment>
+ </environments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <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>
+ <version>0.9.0-SNAPSHOT</version>
+</project>
diff --git a/stuff b/stuff
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/stuff